2016-08-15 44 views
1

在上下文菜单中,我希望⌘→是一个等效键。key与Swift中的非字母数字字符等效

在此support document,你可以设置它像这样:

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

不过,我挣扎将其转换为斯威夫特。

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

回答

2

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

在夫特,NSLeftArrowFunctionKey导入为UInt16,其可以被用来创建一个UnicodeScalar,其可以被用来创建一个Character,并最终String

使用此斯威夫特2:

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

使用此斯威夫特卡伦特3:

button.keyEquivalent = String(Character(UnicodeScalar(NSLeftArrowFunctionKey)!)) 
+0

啊。简单。 'String(NSRightArrowFunctionKey)'更清晰吗? – glenstorey

+0

@glenstorey我在我的第一篇文章中被误认了。看到我更新的答案。 – Alexander

+0

完美 - 只要拿!关闭 - 因为你不能强制解包一个UnicodeScalar。感谢堆。 – glenstorey

相关问题