17

Hotkeyslib3 Cocoaでホットキー

Embed Size (px)

DESCRIPTION

2006-07-29 Cocoa勉強会 #19

Citation preview

Page 1: Hotkeyslib3 Cocoaでホットキー

HotKeysLib3Cocoaでホットキー

Cocoa勉強会�#19�/�2006.07.29�(土)�/�⽊村渡

Powered by Rabbit 0.6.3 and COZMIXNG

Page 2: Hotkeyslib3 Cocoaでホットキー

ホットキーとは?前⾯でないアプリにキーイベントを送る

ランチャーなどでよく利用されている

1/16

Page 3: Hotkeyslib3 Cocoaでホットキー

よくある質問

Q. ホットキーを使うには?

A. CarbonEventを使う

RegisterEventHotKey(), UnregisterEventHotKey() ほかいろいろ

2/16

Page 4: Hotkeyslib3 Cocoaでホットキー

Carbon お断り

Page 5: Hotkeyslib3 Cocoaでホットキー

そこでHotKeysLib3Cocoaのラッパー

ライセンスは�AS IS

作:�Rogue Amoeba Software

Audio HijackやNicecastの開発元

キー設定用のパネル付き(英独仏 ⽇?)

4/16

Page 6: Hotkeyslib3 Cocoaでホットキー

構成�(1)�キーの利用

PTKeyCombo

キーコンビネーション

PTHotKey

PTKeyComboとその動作の対応

PTHotKeyCenter

PTHotKeyを管理

5/16

Page 7: Hotkeyslib3 Cocoaでホットキー

構成�(2)�設定パネル

PTKeyComboPanel

設定パネル

6/16

Page 8: Hotkeyslib3 Cocoaでホットキー

ホットキーの登録PTKeyComboを⽣成1.�

PTHotKeyを⽣成2.�

PTKeyComboと対応する動作(ターゲット・アクション)をPTHotKeyに指定

3.�

PTHotKeyCenterにPTHotKeyを登録4.�

7/16

Page 9: Hotkeyslib3 Cocoaでホットキー

PTKeyComboキーと修飾キーを指定して⽣成

 +keyComboWithKeyCode:modifiers:plistを利用したインターフェイス -initWithPlistRepresentation: -plistRepresentation表⽰用の⽂字表現("^A"など) -description

8/16

Page 10: Hotkeyslib3 Cocoaでホットキー

PTHotKeyインスタンスの⽣成

 -initWithIdentifier:keyCombo:動作の設定

 -setTarget: -setAction:identifierは

PTHotKeyCenterで利用

アプリケーション内で⼀意になるように

9/16

Page 11: Hotkeyslib3 Cocoaでホットキー

PTHotKeyCenterインスタンスの取得

 +sharedCenterPTHotKeyの登録・登録解除 -registerHotKey: -unregisterHotKey:登録されているPTHotKeyの取得 -hotKeyWithIdentifier:

10/16

Page 12: Hotkeyslib3 Cocoaでホットキー

PTKeyComboPanelNSWindowControllerのサブクラス

インスタンスの取得

 +sharedPanelパネルを表⽰して、キーコンビネーションを設定する

 -runModalForHotKey:

11/16

Page 13: Hotkeyslib3 Cocoaでホットキー

PTKeyComboPaneldelegateスタイルでのシート呼び出し -runSheetForModalWindow:target:delegateメソッド -hotKeySheetDidEndWithReturnCode:設定されたキーコンビネーションの取得

 -keyCombo

12/16

Page 14: Hotkeyslib3 Cocoaでホットキー

ワナ設定パネルで記号の表⽰⽂字がちがう気がする…JISキーボード未対応?

通常のアクションと異なり、PTHotKeyのアクション実⾏時にはresponder chainをたぐらない

コンパイルするとPTKeyCombo.mでエラー。"NSTLocalizedString()"という関数がないと⾔われる。NSLocalizedString()にすればよい。

13/16

Page 15: Hotkeyslib3 Cocoaでホットキー

まだ調べてないことキーが重複したときってエラーになる?

14/16

Page 16: Hotkeyslib3 Cocoaでホットキー

おまけKey Code.appでキーコードを調べる

というか、キーの定数とかないのか?

15/16

Page 17: Hotkeyslib3 Cocoaでホットキー

おしまい質問などあればどうぞ

Powered by Rabbit 0.6.3 and COZMIXNG

16/16