2011-11-11 10 views
0

4つのNSTabViewItemでNSTabViewを持つtodoアプリケーションがあります。各タブ・ビューには、ビュー・コントローラが一致するビューがすべて別々のnibファイルにあります。私はそれぞれのペンのFile OwnerをView Controllerに、View Outletsをそれぞれのビューに設定しました。メニューの自動有効化がNSTabViewで機能しない

レスポンダチェーンのビューの後にビューコントローラをパッチし、レスポンダチェーンが元の状態になるようにビューコントローラnextResponderも設定しました。私は最初のレスポンダアクションに編集メニュー項目をバインドしました。問題は、最初のタブを選択してアプリケーションを起動すると、すべての編集メニュー項目が有効になり、正常に動作することです。しかし、別のタブ項目に切り替えて最初のタブ項目に戻ると、すべての編集メニュー項目が無効になり、何もしないと再び有効になります。何が起きているのか?

答えて

0

私の問題への答えは、起動後(View - > MyViewController - > NextResponder)レスポンダーチェーンが損なわれていないため、メニュー項目が期待通りに機能します。しかし、NSTabViewのタブを変更すると、タブビューは対応するNSTabViewItem.viewをレスポンダチェーンにパッチしてView - > NextResponderを作成するので、MyControllerはチェーンから除外され、メニューコマンドは機能しなくなります。言い換えれば、NSTabViewは、タブを変更するときにそのビューのnextResponderをリセットし、コントローラーを応答側チェーンから離します。

私は単純にNSViewのサブクラスをサブクラス化し、それらを各NSTabViewItemのビューに設定しました。今はすべて正常に動作します。

関連する問題