После Tweets example в стакане воды, я пытаюсь получить доступ к переменной вне блока макетаRubymotion Чайная переменная сфера
class WindowController < TeacupWindowController
stylesheet :pref_window
layout do
@loginButton = subview(
NSButton, :loginButton,
state: NSOffState,
buttonType: NSSwitchButton,
action: 'login',
target: self,
)
puts @loginButton.class
end
puts @loginButton.class
первым ставит возвращает класс NSButton, но второй один класс возвращает Nil.
Как я могу получить доступ к @loginButton, если мне нужно программно внести в него изменения?
Например:
@loginButton.setState(NSOnState)
не работает вне блока макета.
благодарит за подсказку. В примере с твитами, которые я связал в вопросе, они не используют себя. – vash
Это потому, что они используют переменную только внутри действия: связанные с переменной. Поэтому я могу использовать переменную @loginButton внутри моего 'def login', но не в определении других методов. Это правильно? – vash
Я думаю, что я, возможно, ошибся ... что может быть вашей проблемой, так это просто, что блок макета еще не был вызван. Все должно быть хорошо, если вы используете @loginButton в действии или что-то еще, которое будет запущено после того, как представление будет загружено и отображено. – FluffyJack