2009-04-28 5 views
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, либо путем редактирования, либо вставки никогда не появляется полоса прокрутки.

Любая помощь по этим двум вопросам будет высоко оценена. Моя среда - это Windows XP, если это помогает.

ОБНОВЛЕНИЕ С ОТВЕТАМИ: Благодаря @Pesto для ответа на вопрос в буфере обмена. Оказывается, что квалификация clipboard либо app., либо self. работает как в моделях Paste, так и Copy.

После того, как вы углубились в проблему с прокруткой, я думаю, что понимаю, почему edit_box не показывает полосу прокрутки. Полоса прокрутки в обуви применяется только к слотам (stack и flow), а не к отдельным элементам, например edit_box. Высота edit_box указана таким образом, чтобы она всегда соответствовала шкафу stack, поэтому stack никогда не нуждается в полосе прокрутки. Это привело меня к работе, которая не идеальна, но приемлема для моего приложения. Просто измените высоту edit_box на большее, чем необходимо, значение, например "10000px", и появится полоса прокрутки. К сожалению, он там нужен или нет, но это лучше, чем прокрутка. Я уверен, что некоторые дополнительные манипуляции могут динамически изменять высоту edit_box, чтобы точно соответствовать содержимому, чтобы полоса прокрутки появлялась только при необходимости.

+0

Прочитав ваше обновление, я бы сказал, что это, вероятно, прекрасно, как временное исправление, но не думайте, что вы его застрянете. Отсутствие полос прокрутки является ошибкой, которая, по-видимому, влияет только на Windows. Следующие релизы релизов должны содержать значительные усилия в улучшении Windows и OSX, и, надеюсь, это будет в числе исправлений. – Pesto

ответ

1

Прежде всего, простой: измените строку в кнопке «Копировать» на app.clipboard = @sql.text.

Во-вторых, что касается полосы прокрутки, это known issue на Windows XP. Я не вижу его в отчетах об ошибках github, но в последней версии (r1229) по-прежнему нет полосы прокрутки.

+0

Большое спасибо. Исправление app.clipboard работает отлично. Почему это не требуется в функции «Вставить»? –

+0

По простой причине, что без использования «приложения» интерпретатор не знает, что вы ищете метод clipboard = вместо того, чтобы просто назначать локальную переменную с именем clipboard. Это не обувь, это вещь Руби. – Pesto

 Смежные вопросы

  • Нет связанных вопросов^_^