我可以在用户点击按钮时捕获字符串。 我也使用以下方法
- (BOOL)control:(NSControl *)control textShouldBeginEditing:(NSText *)fieldEditor
在NSControlTextEditingDelegate协议中声明。 当用户开始编辑时,该按钮将可用。
我的问题是: 如何在用户删除所有文本时禁用该按钮(使textField为空而不单击按钮)?
以上方法似乎无法做到......
答案 0 :(得分:2)
如果您的NSText
是NSTextView
,您还可以使用NSTextDelegate Protocol和NSTextViewDelegate Protocol。
其中,NSTextDelegate
协议声明了此委托方法:
textDidChange:
通知代理文本对象已更改其字符或格式属性。
- (void)textDidChange:(NSNotification *)aNotification
<强>讨论强>
aNotification的名称是NSTextDidChangeNotification。
这里记录了NSTextDidChangeNotification
NSTextDidChangeNotification
答案 1 :(得分:1)
请使用文本字段发布的NSControlTextDidChangeNotification
或controlTextDidChange:
委托方法(来自NSControl
)。当您收到回调时,您可以检查当前在该字段中的文本以决定该做什么。
答案 2 :(得分:0)
做同样事情的很多方法。此版本可让您轻松捕获感兴趣的特定按键。
- (BOOL)textView:(NSTextView *)aTextView shouldChangeTextInRange:(NSRange)affectedCharRange replacementString:(NSString *)replacementString{
NSLog(@"last character entered: %@",replacementString);
}
例如,如果您正在寻找返回键,则可以实现:
if ([replacementString characterAtIndex:0] == NSNewlineCharacter)
NSLog(@"return pressed");