1 つの既存のアプリケーションをアップグレードする必要があり、その既存の UI を個別の NIB に分割する必要があります。分割されたすべての UI に対して個別の NIB と NSViewController を作成することから始める予定です。問題は、NSViewController がキーボード TAB および SHFIT+TAB イベントに応答しなかったことです。ユーザーが TAB または SHIFT+TAB をクリックしたときに、NSViewController が動的にロードされた NSViewController ビューの適切な子コントロールにフォーカスを設定するようにしたいだけです。
ありがとう、
EDITED:以下は私の要件です。
動的にロードして、MainWindow プレースホルダー NSBox で NSPopupButton を使用して切り替える必要がある 3 つのサブビューがあります。
確認のために、新しいココア アプリを作成し、1 つの NSPopupButton と NSBox を Window に追加し、NSPopupButton と NSBox のアウトレットに参加しました。
次に、2 つまたは 3 つの NSTextField の子コントロールを含む別のカスタム ビューを含む 3 つの異なる NIB を持つ 3 つの新しい NSViewController を作成しました。
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
}
メインアプリのデリゲート関数では、3 つの NSViewController をすべて配列に追加し、後で replaceSubview を使用してビューを交換して、プレースホルダー NSBox のビューを置き換えます。
3 つの NSViewController のすべてに次のコードを追加しましたが、TAB または SHIFT+Tab キーを押してもまだ子コントロールにフォーカスできません。
- (void)loadView {
[super loadView];
// store the responder that’s right after the view in the responder chain
NSResponder *nextResponder = [[self view] nextResponder];
// set the view controller (self) as the next responder after the view
[[self view] setNextResponder:self];
// set the stored responder as the next responder after the view controller
[self setNextResponder:nextResponder];
}