キーイベントを生成する
例えばリターンキーイベントを Window に送る場合はこんな感じ。
NSEvent* event = [NSEvent keyEventWithType:NSKeyDown // キーイベントの種類(1) location:NSZeroPoint // イベントの起きた場所(2) modifierFlags:0 // モディファイアキーフラグ(3) timestamp:0 // イベントの起きた時間(4) windowNumber:[window windowNumber] // イベントの起きたwindow(5) context:nil // ディスプレイコンテキスト(6) characters:@"\r" // キーイベントの文字列(7) charactersIgnoringModifiers:@"\r" // モディファイアキーを除いたキー文字列(8) isARepeat:NO // 繰り返しイベントかどうか(9) keyCode:0]; // キーコード(10) [window postEvent:event atStart:YES];
必須なものとしては(1)(7)(8)あたりでしょうか。ちなみに、例によって NSApplication にも同様の postEvent:atStart: っていうメソッドがありますが、中身は同じ。NSWindow → NSApplication ってメッセージが転送されるだけ。