HotkeyRegister へ行く前に利用する側のコードをイメージしてみる。その結果によって必要なインターフェイスが決まる。
サンプルを作り、利用側のイメージを固めてみる。
例えばこんな感じ。
AppController.m
- (void)awakeFromNib
{
Hotkey* hotkey = [[[Hotkey alloc] init] autorelease];
hotkey.code = 0x29;
hotkey.modifier = cmdKey | optionKey;
hotkey.target = self;
hotkey.action = @selector(keyDown:);
HotkeyRegister* hotkey_register = [Hotkeyregister sharedRegister];
[hotkey_register registHotkey:hotkey];
}
Hotkey のインスタンスを作り、そこへキーコードや修飾キー(modifier)、そしてキーが押された時に呼び出されるインスタンス(target)とメソッド(action)を設定する。
HotkeyRegister は registHotkey: を受け、この情報をもとにホットキーをシステムへ登録する。ホットキーが押された時にシステムからHotkeyRegisterの特定のメソッドがコールバックされるので、その中で [target action] を呼び出す。
実装は続く。。
- - - - -
こんな本が出ていた。
こんな記事も出ている。
有料ゲーム危機の時代 iPhoneアプリは「ゼロ化」の法則に立ち向かえるか