最近在用NSSearchField,希望能捕捉键盘事件,比如回车、删除等等常用的事件,调查了下,可用这个函数解决:
- (BOOL)control:(NSControl *)control textView:(NSTextView *)fieldEditor doCommandBySelector:(SEL)commandSelector
{
if (commandSelector == @selector(insertNewline:)) {
//回车 ENTER key
} else if (commandSelector == @selector(deleteForward:)) {
//删除 DELETE key
} else if (commandSelector == @selector(deleteBackward:)) {
//退格 BACKSPACE key
return NO;
}
小结:
可以根据
commandSelector
判断事件类型,并进行定制化的处理。方法返回
YES
表示
delegate
已经处理了事件,系统将不再执行
commandSelector
,返回
NO
系统则会进行默认的处理。