2014-02-24 85 views
1

我在我的Cocoa应用程序中有一个TextField。这个TextField有时会被填充并且有时是空的。可可通知,如何观察事件?

我想要它,所以当字段为空时,一个按钮被禁用。现在,只要我从CoreField获取其值的地方对Core Data进行一些操作,就会检查该字段。

我希望它总是被检查。

回答

0

如果用户编辑文本字段并调出字段编辑器,则可以使用以下内容。

你可以实现NSTextFieldDelegate协议(这实际上只是NSControlTextEditing协议)。例如,在控制器或委托对象中实现control:textShouldEndEditing:方法,并使用它来检查新字符串的值。如果字符串为空,则禁用该按钮。

// In a control object which has a reference to the NSTextField and the NSButton 
- (BOOL)control:(NSControl *)control textShouldEndEditing:(NSText *)fieldEditor { 
    if ([fieldEditor.string isEqualToString:@""]) 
    { 
     [self.button setEnabled:NO]; 
     return YES; 
    } 

    [self.button setEnabled:YES]; 
    return YES; 
} 

更新:我现在不约CodeData该位。在这种情况下,你应该按照下列指示,Disable/Enable NSButton if NSTextfield is empty or not

另一种方法是给控制器的特性暴露 串value,绑定文本字段的值绑定到这个stringValue 属性,绑定按钮的enabled绑定到控制器的 stringValue.length