0
@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 声明为属性就可以了。

4

1 回答 1

0

我不确定是什么原因造成的,但我会说最简单的解决方法,因为你的文本一开始是空的,就像是在awakeFromNib做类似的事情[myButton setEnabled:false];

于 2013-07-26T22:28:32.357 回答