Установка порядка табуляции для NSTextFields NSView

Я пытаюсь установить порядок табуляции для NSTextFields в данном NSView. Насколько я понимаю, мне нужно подключить NSTextFields с InterfaceBuilder, установив выход nextKeyView для следующего NSTextField. Сделал так - а эффекта нет. Когда я нажимаю вкладку, после того, как я нахожусь в одном из NSTextField, он просто теряет фокус, и все. Независимо от того, как часто я нажимаю вкладку, ни одно из других NSTextField не возвращает фокус.

Я также читал, что мне нужно установить initialFirstResponder окна. Я не думаю, что смогу сделать это в данном конкретном случае, потому что мой AppDelegate вызывает NSView, который, в свою очередь, действует как область меню с множеством разных кнопок, каждая из которых вызывает разные NSView, загружаемые как подвиды другого представления. . Поэтому AppDelegate не может узнать, какой NSView загружен в данный момент.

Есть ли способ установить порядок табуляции NSTextFields на основе NSView?

Спасибо


person Joseph    schedule 11.04.2012    source источник


Ответы (2)


Приходится отключать автопересчет шлейфа ключа в окне. См. -[NSWindow setAutorecalculatesKeyViewLoop:].

Отредактировано для добавления: это также можно установить в Interface Builder.

person Ken Thomases    schedule 11.04.2012
comment
Не работает. Я добавил [_window setAutorecalculatesKeyViewLoop: NO]; в метод applicationDidFinishLaunching. В Interface Builder я не поставил флажок Auto Recalculates View Loop в первую очередь. - person Joseph; 11.04.2012
comment
Вы хотите настроить порядок табуляции или просто хотите, чтобы табуляция вообще работала, а это не так? Если второе, пробовали ли вы включить автоматический пересчет цикла просмотра ключей? - person Ken Thomases; 11.04.2012
comment
Я попытался активировать опцию Auto Recalculates View Loop, но это не дало никакого эффекта. И в основном я хочу, чтобы вкладки вообще работали... В настоящее время, если я выхожу из NSTextField, он теряет фокус, и больше ничего не происходит... Больше ничего не фокусируется - независимо от того, как часто я нажимаю вкладку... - person Joseph; 12.04.2012

Это может помочь или не помочь в вашей ситуации, но следующее сработало для меня при работе с NSView в другом NSView. У меня было два вертикальных стека NSTextFields. Вместо того, чтобы перемещаться по горизонтали, мне нужно было перемещаться по одному стеку, а затем по следующему ... Поэтому я встроил каждый из двух вертикальных стеков в свое собственное поле (в IB сначала выберите свои элементы, Редактор> Вставить в> поле). Работает идеально. Если вам не нужен внешний вид блока, вы можете очистить его заголовок и установить для его типа границы значение none: невидимый блок.

person averageJoe    schedule 10.01.2013