我是Mac开发新手。我有一组带有一些控件的对话框。需要根据无线电选择启用/禁用控件。我这样做的方法是为每个控件创建IBOutlet变量,然后在无线电选择改变时调用控件的SetEnabled()。一切正常但现在有8个IBOutlet变量,然后是8个语句来设置它们的状态。想知道是否有很好的方式通过绑定来做到这一点?
我声明了一个BOOL属性 typeOneEnabled 并将NSTextField的Enabled绑定设置为File Owner>> typeOneEnabled。认为它会在属性更改时更改启用状态,但似乎不起作用。我在这里遗失了什么或者不可能吗?
// in header I have
BOOL typeOneEnabled;
@property BOOL typeOneEnabled;
// in mm file
@synthesize typeOneEnabled
// then to change the property val in a method
self.typeOneEnabled = someval;
我记得在设置属性值之前和之后立即放置了一些代码,但它没有用,我还原了它。是与WithKey相关的东西:@“typeOnEnabled”。
答案 0 :(得分:1)
如果enabled
绑定用于NSTextField
并且相关,请确保始终通过使用setter方法或点语法通过KVO访问器访问绑定的BOOL
属性。还要确保如果'NSTextField'值也绑定到属性,则值绑定会禁用Conditionally Sets Editable
。否则,这将导致启用控件。