在Teacup的Tweets example之后,我正在尝试访问布局块之外的变量
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
第一个put返回NSButton类,但第二个返回Nil类。
如果我需要以编程方式对其进行更改,如何访问@loginButton?
例如:
@loginButton.setState(NSOnState)
在布局块之外不起作用。
答案 0 :(得分:1)
您可以使用attr_accessor
上的WindowController
,然后在布局框中使用self.loginButton
,它将在WindowController
上分配,以便您访问puts
按钮。
我还假设第二个class WindowController < TeacupWindowController
stylesheet :pref_window
attr_accessor :loginButton
layout do
self.loginButton = subview(
NSButton, :loginButton,
state: NSOffState,
buttonType: NSSwitchButton,
action: 'login',
target: self,
)
puts self.loginButton.class
end
puts self.loginButton.class
end
实际上是在另一个方法中,这只是示例代码。
{{1}}