将NSTextField的Enabled属性绑定到BOOL属性

时间:2014-02-25 06:21:38

标签: objective-c cocoa binding nstextfield

我是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”。

1 个答案:

答案 0 :(得分:1)

如果enabled绑定用于NSTextField并且相关,请确保始终通过使用setter方法或点语法通过KVO访问器访问绑定的BOOL属性。还要确保如果'NSTextField'值也绑定到属性,则值绑定会禁用Conditionally Sets Editable。否则,这将导致启用控件。