下面的代码(至少)有两个问题: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,则不会出现滚动条。
对于这两个问题的任何帮助将不胜感激。如果有帮助,我的环境是 Windows XP。
更新答案:感谢@Pesto 回答剪贴板问题。事实证明,在和按钮中clipboard使用其中一个app.或self.按预期工作。PasteCopy
在深入研究滚动条问题后,我想我明白为什么edit_box不显示滚动条了。Shoes 中的滚动条仅适用于插槽(stack和flow),而不适用于单个元素,例如edit_box. edit_box高度以始终适合封闭的方式指定,stack因此stack永远不需要滚动条。这导致我找到了一个不理想的解决方法,但我的应用程序可以接受。只需将edit_box高度更改为大于必要的值,例如"10000px"滚动条就会出现。不幸的是,无论是否需要,它都在那里,但这总比没有滚动条好。我敢肯定,一些额外的修补可以动态改变edit_box高度以完全适合内容,以便滚动条仅在需要时出现。