Удалить фокус из элемента панели инструментов

#objective-c #macos #cocoa #xcode4 #nstoolbar

#цель-c #macos #какао #xcode4 #nstoolbar

Вопрос:

У меня есть панель инструментов с пользовательскими элементами. Когда я нажимаю на элемент, левый элемент получает фокус. Как удалить фокус из элемента панели инструментов?

введите описание изображения здесь

Комментарии:

1. Когда установлен переключатель «Полный доступ к клавиатуре» «Все элементы управления», и я открываю окно настроек для другого приложения, элемент панели инструментов не сфокусирован. Я думаю, что у меня проблема в моем собственном приложении

Ответ №1:

Похоже, у вас «Полный доступ с клавиатуры» установлен на «Все элементы управления». Вы можете нажать tab несколько раз, пока фокус не исчезнет с элемента панели инструментов.

Если вы хотите отключить возможность фокусировки на других объектах, кроме текстовых полей и списков (чтобы вы больше не могли фокусироваться на элементах панели инструментов и тому подобном), вы можете сделать это двумя способами: 1) нажмите Control F7 или 2) перейдите в Системные настройки, панель настроек клавиатуры, выберитеВкладка сочетания клавиш и измените переключатель «Полный доступ к клавиатуре» с «Все элементы управления» на «Только текстовые поля и списки».

Комментарии:

1. ОК. Это работает, но когда установлен переключатель «Полный доступ к клавиатуре» «Все элементы управления», и я открываю окно настроек для другого приложения, элемент панели инструментов не сфокусирован. Я думаю, что у меня проблема в моем собственном приложении… Еще идеи?

2. Хммм… Моя первоначальная реакция связана с тем, что NSToobarItem становится первым ответчиком (что делает его выделенным синим цветом). Я формулировал другой ответ по этому поводу, но потом я узнал, что NSToolbar и NSToolbarItem не наследуются от NSResponder или NSView. Когда вы говорите «панель инструментов с пользовательскими элементами», вы имеете в виду, что у вас есть подкласс NSToolbarItem? Если это так, вы можете добавить этот метод в свой подкласс: -(BOOL)acceptsFirstResponder { return NO; }

3. Я не подкласс NSToolbarItem. Я использую объект элемента панели инструментов изображения и устанавливаю собственное изображение…