2011-02-01 16 views
0

私のプログラムでは、Webビューを含むNSPanelがWebページで認証されるようにユーザーに表示されます。認証が完了する前にユーザーがWebViewを終了しているかどうかを監視したい。WebViewのウィンドウが閉じられたときのメッセージ?

WebFrameLoadDelegateプロトコルでメッセージを検索しましたが、ユーザーがNSPanelの閉じるボタンをクリックしたとき、およびユーザーが閉じるボタンをクリックしたときに発生するメッセージを見つけることができませんでした。

NSWindowControllerのサブクラス化とcloseメソッドのオーバーライドについて調べました。おそらく私は間違っていました。なぜなら、[スーパークローズ]コールを削除しても、パネルはまだ閉じていたからです。

WebViewを含むNSPanelが終了したときに余分なコードを実行する正しい手順は何ですか?

答えて

0

ユーザーがウィンドウを閉じるのを止めたい場合は、が含まれていないものにはset the window's style maskが必要です。これにより、ウィンドウの閉じるボタンが無効になり、プログラムでのみ閉じることができます。最も単純なケースでは、[panel setStyleMask:[panel styleMask]^NSCloseableWindowMask]を実行するだけです。

また、ウィンドウの終了動作をオーバーライドする場合は、NSWindowの(NSWindowControllerの)closeメソッドをオーバーライドするか、ウィンドウのデリゲートにwindowShouldClose:を実装する必要があります。私は第二の方法が良いと思います。とにかく、-[NSWindowController close]は、ウィンドウを閉じる便利な方法です。ウィンドウが閉じたときに通常呼び出されるものではありません。

+0

パーフェクト。ありがとう! – Aaron