@interface MyClass {
NSString *_myString;
}
@property (copy) *myString;
@end
@implementation MyClass
@synthesize myString = _myString;
- (void)awakeFromNib {
self.myString = @"";
}
在笔尖中,我有一个 NSTextField 和一个 NSButton。文本字段的值绑定设置为 myClass.myString。我验证了在文本字段中输入文本时变量 _myString 正在正确更新。
NSButton 的 Enabled 绑定设置为 myClass.myString.length。但是,当我启动程序时,NSButton 已启用!如果我转到文本字段并在其中输入一些内容,则该按钮将保持启用状态。然后,如果我从文本字段中删除文本,则该按钮将被禁用。
但是为什么在 awakeFromNib 调用之后按钮没有被禁用呢?我是否必须做一些额外的工作才能使绑定以相反的方向工作(myClass.myString --> NSTextField)?我认为将 myString 声明为属性就可以了。