key与Swift中的非字母数字字符等效

时间:2016-08-15 18:08:58

标签: swift macos cocoa

在上下文菜单中,我希望⌘→成为等效的关键字。

在此support document中,您可以这样设置:

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

然而,我正在努力将其转换为Swift。

如何将允许的非字母数字键设置为Swift中的等效键?

1 个答案:

答案 0 :(得分:3)

该代码需要NSLeftArrowFunctionKey(一个C宏),将其分配给unichar变量,然后将其地址提供给NSString。令人讨厌的是,因为它是一个C宏而不是const,所以你不能直接使用&NSLeftArrowFunctionKey

在Swift中,NSLeftArrowFunctionKey导入为UInt16,可用于创建UnicodeScalar,可用于创建Character,最终可用{ {1}}。

在Swift 2中使用它:

String

在Swift 3中使用它:

button.keyEquivalent = String(Character(UnicodeScalar(NSLeftArrowFunctionKey)))