可可通知,如何观察事件?

时间:2014-02-24 18:01:49

标签: cocoa events user-interface

我的Cocoa应用程序中有一个TextField。此TextField有时会填充,有时会为空。

我想要它,这样当字段为空时,按钮被禁用。现在,每当我使用Core Data从TextField获取其值时执行某些操作时,我都会检查该字段。

我希望始终对此进行检查。

1 个答案:

答案 0 :(得分: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