Swift と Storyboards を試すための基本的な Cocoa アプリがあります。
アプリは によって管理される 3 つのメイン ビューで構成さNSTabViewController
れ、メイン ウィンドウの「ウィンドウ コンテンツ」関係に再びリンクされます。
ウィンドウのツールバーにを追加しNSSegmentedControl
て、3 つのタブ ビューを切り替えました。
メイン ウィンドウ コントローラーで、ツールバー項目のアクション メソッドを追加してタブを切り替えましたが、タブ ビュー コントローラーへの参照を取得して実際にタブを切り替える方法がわかりません。
アクション メソッドをタブ ビュー コントローラーに追加しようとしましたが、空のビューが含まれている場合、タブ ビュー コントローラーがレスポンダー チェーンに含まれていない可能性があるため、機能しません (これはバグですか?)。
回避策として、タブ ビュー コントローラーで viewDidAppear() をオーバーライドしました。そこで、view.window.windowController へのハンドルを取得し、インスタンス変数に「self」への参照を設定します。これは機能しますが、正しくないようです。ウィンドウコントローラーからコンテンツビューコントローラーに到達する方法が必要です...
ウィンドウ コントローラーとタブ ビュー コントローラーは異なるシーンに存在するため、IBOutlet を介してそれらを接続することはできません。また、「ウィンドウ コンテンツ」関係についても、ウィンドウ コントローラでセグエ メソッドが呼び出されることはありません。