当用户在NSSearchField中按Enter键时调用函数?

Fla*_*la2 5 cocoa text return enter nssearchfield

我很惊讶我找不到这个简单任务的答案.我只是希望用户键入文本,按回车键,让应用程序知道他/她键入的内容.我该怎么做?

小智 16

NSSearchField支持动作目标机制,因此只需将其挂钩到目标/动作即可.例如,假设您在应用程序委托中声明了以下操作:

- (IBAction)searchAnswer:(id)sender;
Run Code Online (Sandbox Code Playgroud)

在Interface Builder中,按住Ctrl键将搜索字段拖动到应用程序委托对象,然后选择searchAnswer:操作.在其实现中,用于-stringValue获得用户键入搜索字段的文本,例如

- (IBAction)searchAnswer:(id)sender {
    NSLog(@"search answer: %@", [searchField stringValue]);
}
Run Code Online (Sandbox Code Playgroud)

请注意,默认情况下,搜索字段也会在用户暂停/停止键入时发送操作.如果您希望仅在用户键入Enter时发送操作,请选择Sends Whole Search String搜索字段属性检查器窗口中的复选框.

  • @ Flafla2:目标/动作比键或鼠标事件更高.即使用户没有Enter键,或者根本没有键盘,字段也可以发送其动作.即使用户没有鼠标,按钮也可以发送其动作.使用目标/操作意味着无论用户具有哪种接口设备,您都可以接收操作. (3认同)