2011-07-08 1 views
0

私のNSDocument-basedアプリケーションでは、私のドキュメントのウィンドウにはWebViewだけが含まれています。私はcut:copy:paste:とdelete:を私のNSWindowControllerサブクラスで定義しました。これはうまく機能しますが、WebViewに何かテキストがない限り、それらのメニュー項目は無効になります。WebViewが私のウィンドウコントローラに渡すのではなく、編集メニュー項目を無効にするのを止めるにはどうしたらいいですか?

私が理解しているようにレスポンダーチェーンのルールに違反しているようです。あなたはそれを渡す必要がありますが何かを行うことはできませんが、それはWebViewがメソッドを定義し、私のウィンドウコントローラでボールを再生していない項目を無効にしたいと思われる。どのようにしてWebViewに協力して、コントローラーに何か良いことがないときにコントローラーとUIの検証を行うようにするにはどうすればよいですか?

答えて

0

WebViewは、メニュー項目で好きなことをすることができます。レスポンダチェーンの上に検証責任を渡さなければなりません。実際には、NSWindowControllerまたはNSDocumentクラスのcopy:メソッドを実装する多くのアプリが壊れて、WebViewの未処理のイベントを処理する必要がないと考えられることは明らかです。

WebViewをサブクラス化し、validateMenuItem:を実装する必要があります。次に、興味のあるメソッドのメニュー検証を制御し、そうでない人にはsuperを呼び出します。

関連する問題