Код ниже имеет (как минимум) две проблемы: кнопка 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.
работает как в моделях Paste
, так и Copy
.
После того, как вы углубились в проблему с прокруткой, я думаю, что понимаю, почему edit_box
не показывает полосу прокрутки. Полоса прокрутки в обуви применяется только к слотам (stack
и flow
), а не к отдельным элементам, например edit_box
. Высота edit_box
указана таким образом, чтобы она всегда соответствовала шкафу stack
, поэтому stack
никогда не нуждается в полосе прокрутки. Это привело меня к работе, которая не идеальна, но приемлема для моего приложения. Просто измените высоту edit_box
на большее, чем необходимо, значение, например "10000px"
, и появится полоса прокрутки. К сожалению, он там нужен или нет, но это лучше, чем прокрутка. Я уверен, что некоторые дополнительные манипуляции могут динамически изменять высоту edit_box
, чтобы точно соответствовать содержимому, чтобы полоса прокрутки появлялась только при необходимости.
Прочитав ваше обновление, я бы сказал, что это, вероятно, прекрасно, как временное исправление, но не думайте, что вы его застрянете. Отсутствие полос прокрутки является ошибкой, которая, по-видимому, влияет только на Windows. Следующие релизы релизов должны содержать значительные усилия в улучшении Windows и OSX, и, надеюсь, это будет в числе исправлений. – Pesto