Мне нужно обновить одно существующее приложение и разделить его существующий пользовательский интерфейс на отдельные NIB. Я планирую начать с создания отдельных NIB и NSViewController для всех моих разделенных пользовательских интерфейсов. Теперь проблема в том, что мой NSViewController не отвечает на события клавиатуры TAB и SHFIT + TAB, я просто хочу, чтобы мой NSViewController установил фокус на соответствующий дочерний элемент управления в моем динамически загружаемом представлении NSViewController, когда пользователь нажимает TAB или SHIFT + TAB.
Спасибо,
РЕДАКТИРОВАТЬ: следующее мое требование.
У меня есть три дополнительных представления, которые мне нужно загружать динамически и переключаться с помощью NSPopupButton в моем заполнителе NSBox MainWindow.
Для проверки я создал новое приложение какао и добавил по одному NSPopupButton и NSBox в Window и присоединился к выходам для NSPopupButton и NSBox.
Во-вторых, я создал три новых NSViewController с тремя разными NIB, содержащими отдельные настраиваемые представления, содержащие два или три дочерних элемента управления NSTextField.
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
}
В основной функции делегата приложения я добавляю все три NSViewController в массив, а затем заменяю представления с помощью replaceSubview для замены представлений в заполнителе NSBox.
Я добавил следующий код во все три 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];
}