1

我正在开发状态栏应用程序。我想允许用户根据自己的喜好修改菜单项键等效项。在它成为一个非常常见的功能之前,我已经看到了这一点。首选项窗口通常有一个带有文本字段的区域,用户可以在其中输入特定菜单项的键盘快捷键。

如何设置文本字段以显示修饰键字体?默认的 NSTextfield 忽略修饰符。

此外,如果有人有一个非常有用的链接,我还没有找到一个显示此功能的示例项目。

4

2 回答 2

2

您可能希望查看 Shortcut Recorder,它允许用户使用修饰符记录等效键,然后您可以检索它们并将它们设置为NSMenuItem.

一旦用户记录了他们的快捷键/组合键,您就可以访问具有键码和修饰符标志值的SRRecorderControl'属性。objectValue

https://github.com/Kentzo/ShortcutRecorder

于 2013-10-21T09:14:31.953 回答
0

修饰键都具有 Unicode 值,您可以在“特殊字符”面板中看到这些值,并且它们由正常的系统字体显示。它们中的大多数位于调色板的“技术符号”类别中,但 Shift 和 Caps Lock 键的向上箭头位于“箭头”部分。

您可以在 Interface Builder 或 Xcode 中编辑标签元素时插入这些值,或者在创建NSString对象之类的东西时包含它们对应的 Unicode 值。

例如,Shift 键的 UTF-8 序列(如调色板中所示)是以E2 87 A7编程方式设置它的一种方法是将这些字节添加到数组并NSString从 UTF-8 数组创建一个。我更喜欢数组方法,因为它“防弹”;它将始终被解释为 UTF-8 并执行您期望的操作。如果您尝试将字符直接插入@""CFSTR()字符串,则必须确保源文件的编码正确(旧版本的 Xcode 甚至不允许这样做,他们只假设 ASCII)。

于 2013-10-19T19:11:47.957 回答