Chr*_*ris 12 cocoa objective-c nstextfield
我一直在寻找一个简单的例子,说明当在文本字段中点击回车键时如何触发操作(或按钮).
我应该对文本字段进行子类化吗?我是否需要设置代理来调用我需要的操作?有没有办法在我的主窗口控制器类中捕获事件?
如果你甚至可以指出我正确的方向,这将是伟大的.谢谢.
Ada*_*dam 22
在接受答案的评论中引用的网站...现在由网站主机"暂停",并且Google缓存没有包含关键步骤的屏幕截图.
所以,这是我发现的另一种解决方案:
对于某些键(Enter,Delete,Backspace等),Apple不会调用正常的controlTextDidEndEditing:etc方法.相反,Apple会为每个魔术键执行单独的选择器 - 但是有一种方法可以用来拦截它.
Apple的官方文档在这里:
...但是如果消失/被移动,请将此方法添加到您的委托中:
- (BOOL)control:(NSControl *)control textView:(NSTextView *)fieldEditor doCommandBySelector:(SEL)commandSelector
{
BOOL retval = NO;
if (commandSelector == @selector(insertNewline:)) {
retval = YES; // causes Apple to NOT fire the default enter action
// Do your special handling of the "enter" key here
}
NSLog(@"Selector = %@", NSStringFromSelector( commandSelector ) );
return retval;
}
Run Code Online (Sandbox Code Playgroud)
在我的情况下,我也想覆盖退格键 - 使用此方法运行应用程序,我得到输出说选择器是"deleteBackward:",所以我在那里添加了另一个if语句来对此作出反应.
归档时间: |
|
查看次数: |
13543 次 |
最近记录: |