2

是否可以仅在编辑某个 NSTextField 时添加热键?例如,当您在此文本字段中时,我希望您按 Command + 1 插入一个字符串,然后按 Command + 2 插入另一个文本字符串等,但仅在您编辑该 NSText 字段时。

我尝试向我的子类 NSTextField 添加一个 keyDown 方法,但这似乎并没有被解雇。如果我将它更改为 keyUp 它会被触发,但如果命令键被按住则不会。

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

4

3 回答 3

2

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

于 2010-11-16T06:42:10.803 回答
1

NSTextField 的不处理 keyDown: 自己。相反,他们似乎依赖于称为 Field Editors 的中介(从类似的问题中找到此信息http://www.cocoabuilder.com/archive/cocoa/51299-custom-nstextfield-keydown.html)。

苹果有一些关于这个主题的更多信息 - http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/TextEditing/Tasks/FieldEditor.html

于 2010-11-16T07:02:29.713 回答
0

当我的文本字段是第一响应者时,我最终将我的窗口子类化并覆盖了 sendEvent。

于 2010-11-16T18:14:23.793 回答