以下のコードには (少なくとも) 2 つの問題があります。Copy
ボタンがクリップボードを更新しedit_box
ないことと、垂直スクロール バーが表示されるべきときに表示されないことです。
Shoes.app (:title => "Test", :width => 1000, :height => 600) do
background "#DFA"
stack :margin => 30 do
flow do
button "Paste" do
@sql.text = clipboard
end
button "Copy", :margin_left => 15 do
clipboard = @sql.text
alert(@sql.text.length.to_s + " characters copied to clipboard.")
end
end
stack :margin_top => 10, :width => "100%", :height => 500, :scroll => true do
@sql = edit_box :width => "100%", :height => "100%"
end
end
end
ボタンはPaste
、クリップボードの内容を に正しく貼り付けますedit_box
。変更を行って をクリックするCopy
と、alert
メッセージに正しい文字数が表示されます。もう一度クリックPaste
すると、元のクリップボードの内容が貼り付けられます。ボタンはCopy
クリップボードを正しく更新しません。
また、編集または貼り付けによって に収まらない行を生成するとedit_box
、スクロール バーが表示されなくなります。
これら 2 つの問題に関するヘルプをいただければ幸いです。それが役立つ場合、私の環境はWindows XPです。
回答付きの更新:クリップボードの質問に回答してくれた @Pesto に感謝します。clipboard
or のいずれかを使用app.
した修飾は、 ボタンとボタンself.
の両方で期待どおりに機能することがわかりました。Paste
Copy
edit_box
スクロールバーの問題を深く掘り下げた後、スクロールバーが表示されない理由が理解できたと思います。stack
Shoes のスクロールバーはスロット (と) にのみ適用されflow
、 のような個々の要素には適用されませんedit_box
。高さは、囲んでいるedit_box
内に常に収まるように指定されるため、はスクロールバーを必要としません。これにより、理想的ではありませんが、私のアプリケーションでは許容できる回避策が得られました。高さを必要以上の値に変更するだけで、スクロールバーが表示されます。残念ながら、必要かどうかにかかわらずそこにありますが、スクロールバーがないよりはましです。追加のいじくり回しで動的に変更できると確信していますstack
stack
edit_box
"10000px"
edit_box
スクロールバーが必要な場合にのみ表示されるように、高さをコンテンツに正確に合わせます。