Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift中具有非字母数字字符的密钥等效项_Swift_Macos_Cocoa - Fatal编程技术网

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(:)
是可失败的。