Swift中具有非字母数字字符的密钥等效项
在上下文菜单中,我想要Swift中具有非字母数字字符的密钥等效项,swift,macos,cocoa,Swift,Macos,Cocoa,在上下文菜单中,我想要⌘→将成为密钥等效项 在这种情况下,可以这样设置: unichar arrowKey = NSLeftArrowFunctionKey; [button setKeyEquivalent:[NSString stringWithCharacters:&arrowKey length:1]]; 然而,我正在努力将其转换为Swift 如何将允许的非字母数字键设置为Swift中的等效键?该代码采用NSLeftArrowFunctionKey(C宏),将其分配给unich
⌘→
将成为密钥等效项
在这种情况下,可以这样设置:
unichar arrowKey = NSLeftArrowFunctionKey;
[button setKeyEquivalent:[NSString stringWithCharacters:&arrowKey length:1]];
然而,我正在努力将其转换为Swift
如何将允许的非字母数字键设置为Swift中的等效键?该代码采用
NSLeftArrowFunctionKey
(C宏),将其分配给unichar
变量,然后将其地址提供给NSString
。令人烦恼的是,因为它是一个C宏而不是常量,所以不能直接使用&NSLeftArrowFunctionKey
在Swift中,NSLeftArrowFunctionKey
作为UInt16
导入,可用于创建UnicodeScalar
,可用于创建字符
,最终创建字符串
在Swift 2中使用此选项:
button.keyEquivalent = String(Character(UnicodeScalar(NSLeftArrowFunctionKey)))
在Swift 3中使用此选项:
button.keyEquivalent = String(Character(UnicodeScalar(NSLeftArrowFunctionKey)!))
啊。简单。
String(NSRightArrowFunctionKey)
更清晰吗?@glenstore我在第一篇文章中错了。看看我的最新答案。太好了-就拿这个吧!关闭-因为你不能强制打开一个单侧笛卡尔。感谢heaps.Oops,我在Swift 3中测试了这一点,在Swift 3中,UnicodeScalar(:)
是可失败的。