NSToolbarItem выделяет, когда не должно

У меня странное поведение NSToolbarItems, которые находятся на панели инструментов NSPanel (Панель утилит), которая является панелью инспектора. Когда панель впервые отображает три элемента все в порядке

Панель инструментов, когда она впервые отображается

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

Панель инструментов с синей подсветкой вокруг первого элемента

Синяя подсветка не зависит от изображения, которое используется для NSToolbarItem, и всегда находится вокруг изображения слева. Он никогда не исчезнет после первого клика.

Что вызывает основной момент и как я могу заставить его уйти?

Спасибо--

1 ответ

Это кольцо фокусировки. Он показывает, когда на панели сделана клавиша (из-за щелчка), и указывает, какой элемент управления будет реагировать на события клавиатуры, например нажатие клавиши пробела. Предположительно он будет перемещаться среди элементов управления в окне при нажатии клавиши Tab или Shift-Tab.

Если у вас есть какие-либо текстовые поля или тому подобное на вашей панели, которые фокусируются на щелчке, то нажатие на одно из них, вероятно, удалит кольцо фокусировки из элемента панели инструментов и поместит его в текстовое поле.

Вы не должны рассматривать это как какую-то большую проблему. Однако, если вы действительно хотите изменить его, вы можете сделать другое представление первым респондентом (сфокусированное представление), чтобы элемент панели инструментов не имел фокусировки.

Вы можете установить initialFirstResponder вашего окна и / или элементов вашей вкладки. (Я предполагаю, что элементы панели инструментов переключаются между вкладками представления таблиц.)

Кроме того, вы можете сделать окно своим первым респондентом, выполнив [window makeFirstResponder:nil], Или вы можете сделать любой конкретный вид первого респондента, выполнив if ([view acceptsFirstResponder]) [view.window makeFirstResponder:view];,

Другие вопросы по тегам