以下のコードは、少なくとも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がクリップボードの質問に回答してくれてありがとうございます。 app.
またはself.
のいずれかを使用してclipboard
を修飾すると、Paste
とCopy
の両方のボタンで期待どおりに機能することがわかります。
スクロールバーの問題を深く掘り下げた後、私はedit_box
がスクロールバーを表示しない理由を理解していると思います。 Shoesのスクロールバーはスロット(stack
およびflow
)にのみ適用され、edit_box
などの個々の要素には適用されません。 edit_box
の高さは、常にstack
を囲むように指定されているため、stack
にはスクロールバーが必要ありません。これは理想的ではない回避策につながりましたが、私のアプリケーションでは受け入れられます。 edit_box
の高さを"10000px"
などの必要以上の値に変更するだけで、スクロールバーが表示されます。残念ながら、それは必要かどうかにかかわらず、スクロールバーよりも優れています。私は、スクロールバーが必要なときにのみ表示されるように、いくつかの追加の修正によって動的に内容が正確に収まるように高さを動的に変更することができると確信しています。
あなたのアップデートを読んでいれば、これは一時的な修正としてはうまくいくかもしれないと思いますが、あなたがそれについているとは思わないでしょう。スクロールバーの欠如は明らかにWindowsにのみ影響するバグです。次のカップルのリリースには、WindowsとOSXの改善に多大な努力を払う必要があります。うまくいけば、これは修正の対象になるでしょう。 – Pesto