【问题标题】:Where i find a list of Key Equivalent strings on MacOSX我在哪里可以找到 MacOS 上的 Key Equivalent 字符串列表
【发布时间】:2013-09-03 06:55:45
【问题描述】:

我需要知道哪些 NSString 值可以用于等效键。

我不知道该用什么

  • 光标键
  • 删除/退格
  • 功能键
  • 小键盘项目

【问题讨论】:

  • 好吧,我发现删除是字符 127,退格是字符 8

标签: cocoa macos


【解决方案1】:

请参阅按钮编程主题设置按钮的等效键

https://developer.apple.com/library/mac/documentation/cocoa/conceptual/Button/Tasks/SettingButtonKeyEquiv.html

对于单个字符:

[button setKeyEquivalent:@"\r"];

对于非打印字符:

unichar left = NSLeftArrowFunctionKey;
[button setKeyEquivalent:[NSString stringWithCharacters:&left length:1]];

按钮和菜单项对等效键使用相同的 API。

【讨论】:

    【解决方案2】:

    每个键等效字符串只是键输入的字符。对于文本编辑键,在 NSText.h 和 documented in NSText's documentation 中定义的每个字符都有符号常量。使用[NSString stringWithFormat:@"%C", desiredCharacterGoesHere] 将这些转换为 NSStrings 以便与 NSMenuItems 等对象一起使用。

    数字小键盘上的按键也是如此,它们与主键盘上的表亲没有区别。毕竟,我们在这里处理的是字符,而且两组键都输入了相同的字符。我认为没有办法设置菜单的键码而不是其等效键字符;您需要自己实现。

    请注意,“删除”(与退格键相反)在 Mac 上称为“前向删除”,因为退格键通常称为删除。

    【讨论】:

    • 功能键呢?我找到了一种在菜单中将它们显示为等效键的方法,但它们没有被调用。带有字符的参数可能是正确的(退格/回车也不是字符),但它只会给苹果一个坏名声。无论如何,他们的密钥处理是如此糟糕。
    • Backspace 是一个字符(ASCII #8,正是您在 IB 中设置时绑定到它的字符),Apple 的密钥处理并不是“严重损坏”。如果是这样,它就不会与其他键布局配合得那么好;以我作为 Dvorak 用户的经验,它总是搞砸了自定义键处理。请参阅 WWDC 2010 session 145 了解 Apple 的密钥处理是如何工作的;这是一个优雅、灵活的系统。至于功能键,在 NSEvent.h 中定义。顺便说一句,我注意到那里有一个用于键盘键的键修饰符掩码;您可以在任何应该是特定于键盘的菜单项上进行设置。
    • 我刚刚测试过,它没有帮助——无论菜单项是否有NSNumericPadKeyMask,菜单项都匹配字符。对我来说听起来像是一个错误,所以我建议提交它:bugreport.apple.com 同时,您可以使用 #145 中的信息自行处理。
    • 嗨,Peter,您能分享一下您为查找关键等价物而编写的程序吗?
    • @deovrat singh:我只是重写了我的答案,以提出更好的方法。对于其他所有内容(例如功能键),请使用 Many Tricks 的程序 Key Codes。 itunes.apple.com/us/app/key-codes/id414568915?mt=12
    猜你喜欢
    • 2020-04-01
    • 1970-01-01
    • 2018-03-15
    • 2017-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-29
    • 2017-04-13
    相关资源
    最近更新 更多