2016-08-15 20 views
1

コンテキストメニューで⌘→をキーに相当するものにしたいと思います。キーSwiftの非英数字の文字列と同等です。

このsupport documentでは、あなたはとてもようにそれを設定することができます。しかし、私はスウィフトにこれを変換するために苦労してい

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

Swiftでは、許可された非英数字キーをキーに相当するものとしてどのように設定できますか?

答えて

2

そのコードはNSLeftArrowFunctionKey(Cマクロ)をとり、それをunichar変数に割り当て、そのアドレスをNSStringに渡します。うーん、それはCマクロであり、constではなく、&NSLeftArrowFunctionKeyをそのまま使用することはできません。スウィフト、NSLeftArrowFunctionKey

Characterを作成するために使用することができるUnicodeScalarを作成するために使用することができるUInt16、そして最終的にStringとしてインポートされます。スウィフト2で

使用この:

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

使用このスウィフト3:

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

ああ。シンプル。 'String(NSRightArrowFunctionKey)'は明確ですか? – glenstorey

+0

@glenstorey私は最初の投稿で間違っていた。私の更新された答えを見てください。 – Alexander

+0

パーフェクト - ちょうど取る! off - UnicodeScalarの展開を強制することはできません。ありがとう。 – glenstorey

関連する問題