私はCocoaに徐々に移植しようとしているCocoaビューが埋め込まれたCarbonアプリを持っています。アプリは現在、Carbon イベント ループ ( RunApplicationEventLoop
) を使用し、Carbon nib ファイルからメイン ウィンドウをロードし、すべてが魅力的に機能します。
私が今やろうとしているのは、に置き換えることRunApplicationEventLoop
です[NSApp run]
。アプリケーションは正しく起動し、メイン ウィンドウが表示されますが、すべてのイベントが Carbon イベント ハンドラに配信されるわけではありません。マウス クリックは、その Carbon ウィンドウに埋め込まれた Cocoa ビューにのみ配信されますが、ウィンドウ自体の Carbon イベント ハンドラーには配信されません。
ここで見つけたドキュメントによると、すべてがうまくいくはずです。私は基本的に探しています:
- Cocoa/Carbon 統合のより詳細なドキュメント。
- イベント ディスパッチ プロセスをデバッグするためのアイデア。
注:私は(で作成されたNSWindowの場合)[NSEvent addLocalMonitorForEventsMatchingMask:]
の実装と置き換えの両方を試みました。マウス イベントは確実にそこに到着しますが、どの Carbon イベント ハンドラーにも到着しません。NSWindow sendEvent:
initWithWindowRef