编辑NSTextField时添加热键

时间:2010-11-16 06:27:36

标签: objective-c cocoa nstextfield

是否可以仅在编辑某个NSTextField时添加热键?例如,当你在这个文本字段中时我想要它,如果你按下Command + 1它插入一个字符串,而Command + 2插入另一个文本字符串等,但只有当你编辑那个NSText字段时。 / p>

我尝试将keyDown方法添加到我的子类NSTextField中,但似乎没有被解雇。如果我将其更改为keyUp则会被触发,但如果按下命令键则不会触发。

在我搜索热键时,我发现的唯一信息是全局热键(即使应用程序不可见时也会激活),这不是我想要的。

3 个答案:

答案 0 :(得分:2)

如果您有一个包含该键盘快捷键的菜单项,则可以在字段位于响应程序链中时实现validateUserInterfaceItem:以启用它。我不确定的是,这是否适用于隐藏的菜单项。

答案 1 :(得分:1)

NSTextField不处理keyDown:自己。他们似乎依赖于称为Field Editors的中间人(在http://www.cocoabuilder.com/archive/cocoa/51299-custom-nstextfield-keydown.html这里发现了类似问题的信息)。

Apple有关于此主题的更多信息 - http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/TextEditing/Tasks/FieldEditor.html

答案 2 :(得分:0)

当我的文本字段是第一个响应者时,我最终继承了窗口并覆盖了sendEvent。