3

ポップアップとしてモーダルにロードされた NSWindow を、その外側をクリックして閉じるにはどうすればよいですか?

カーソルがフォーカスのあるモーダルウィンドウの外にあるとき(ただし、アプリ内にあるとき)、マウスイベントを処理したいと思います。

4

3 に答える 3

0

次のデリゲート メソッドを実装してNSWindow、ウィンドウがフォーカスを失ったという通知を受け取ることができます。

- (void)windowDidResignKey:(NSNotification *)notification

そして、あなたのアプリケーションが最前面のアプリであるかどうかを確認してください。はいの場合は、それに応じて閉じます。

于 2013-10-22T11:09:59.500 に答える
0

アプリケーションがモーダル実行ループにある間、ウィンドウに関連付けられていない限り、他のイベント (マウス、キーボード、またはウィンドウを閉じるイベントを含む) には応答しません。また、モーダル実行ループに関連付けられていないタスク (タイマーの起動など) も実行しません。

メソッドを使用できnextEventMatchingMask:untilDate:inMode:dequeue:ます。これはモーダルループで機能します。

NSWindow と NSApplication はどちらも nextEventMatchingMask:untilDate:inMode:dequeue: メソッドを定義します。これにより、オブジェクトはイベント キューから特定のタイプのイベントを取得できます。

于 2013-10-22T11:22:43.950 に答える