我的Cocoa应用程序中有一个TextField。此TextField有时会填充,有时会为空。
我想要它,这样当字段为空时,按钮被禁用。现在,每当我使用Core Data从TextField获取其值时执行某些操作时,我都会检查该字段。
我希望始终对此进行检查。
答案 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
。