Установить NSToolbarItem не выбран

В настоящее время я пытаюсь определить NSToolbar с возможностью выбора NSToolbarItems которые представляют инструменты в приложении OSX для рисования. Я хочу, чтобы пользователь мог выбирать и отменять выбор инструментов (NSToolbarItems), которые будут использоваться, щелкая их.

Если вы знаете Sketch, то я ищу поведение панели инструментов:

Скриншот выбранного инструмента

На изображении выше вы видите выбранный инструмент "Редактировать". Если вы снова щелкнете по элементу, он будет отменен:

Снимок экрана невыбранного инструмента

Я читал документацию Apple по панелям инструментов и не нашел информации о том, как достичь этого эффекта, позволяя выбирать / отменять выбор элементов панели инструментов. В "Выбираемых элементах панели инструментов" написано:

Ваше приложение может указать текущий выбранный элемент панели инструментов, используя метод setSelectedItemIdentifier: передача идентификатора для нужного элемента панели инструментов. Текущий выбранный элемент панели инструментов возвращается методом selectedItemIdentifier, Если в данный момент не выбрано, возвращается nil.

но я не нашел где setSelectedItemIdentifier: метод определен или, если это даже то, что решит мое требование.

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

Есть ли простой способ решить эту проблему? я пропускаю важную часть документации, где объясняется, как добиться этого эффекта?

Большое спасибо!

ОТВЕТ: Итак, в конце концов, это было так просто, как selectedItemIdentifier из NSToolbar в nil, Это приводит к отмене выбора выбранного элемента.

1 ответ

Чтобы отменить выбор NSToolbarItem, это так же просто, как установка selectedItemIdentifier из NSToolbar Возражать nil,

Первоначально меня смутила документация Apple в разделе " Элементы для выбора элементов панели инструментов ", поскольку в нем говорится:

[...] Текущий выбранный элемент панели инструментов возвращается методом selectedItemIdentifier, Если в данный момент не выбрано, возвращается nil.

так я думал selectedItemIdentifier был просто методом, который возвращал выбранный в данный момент элемент панели инструментов (без настроек, просто получение). Но я считаю, что это должно быть опечатка. selectedItemIdentifier это свойство get/set, и, фактически, установка его в nil отменяет выбор всех элементов.

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