Определите, могут ли все элементы управления получить фокус (то есть стать первым респондентом) - PullRequest
0 голосов
/ 02 июня 2019

Мне нужно определить, может ли какой-либо NSControl, например NSButton, получить фокус с помощью клавиши Tab.

Может, если пользователь включил опцию в Системных настройках в разделе Клавиатура / Ярлыки / Клавиатура / «Изменить способ, которым вкладка перемещает фокус».

Точнее говоря, мне нравится делать NSButton первым респондентом, но только если включен режим «все элементы управления могут получить фокус». Может быть, я мог бы спросить элемент управления, принимает ли он статус firstReponder?

Я пытался вызвать acceptsFirstResponder на кнопке, но он возвращает YES, даже если он не может стать firstReponder с помощью клавиши Tab, так что это не правильный путь.

1 Ответ

1 голос
/ 05 июня 2019

canBecomeKeyView - это свойство / метод, который вы ищете.

Из Руководство по обработке событий какао, управление интерфейсом клавиатуры

Метод acceptptsFirstResponderопределяет, принимает ли респондент статус первого респондента, когда его окно запрашивает его (то есть, когда makeFirstResponder: вызывается с респондентом в качестве параметра).Метод canBecomeKeyView контролирует, позволяет ли набор приложений использовать вкладки для представления.Он вызывает acceptptsFirstResponder, но также проверяет другую информацию перед определением возвращаемого значения, например, является ли представление скрытым и включен ли полный доступ с клавиатуры.

...