По словам инженера Apple в обсуждении по адресу http://www.mail-archive.com/cocoa-dev@lists.apple.com/msg35673.html, в Interface Builder есть ошибка, из-за которой «CustomПредставления "(NSViews, созданные в IB) не декодируются должным образом при использовании в качестве представления для NSToolbarItem и поэтому не отображаются на панели инструментов.Другие виды NSView, такие как NSButtons и NSBox, будут отлично работать как элементы панели инструментов: вы можете создать их в Интерфейсном Разработчике и затем перетащить их на панель инструментов, чтобы превратить их в элементы панели инструментов.
(Обсуждение вприведенная выше ссылка подразумевает, что ошибка заключается в том, что «пользовательские представления» создаются из XIB во время выполнения: с использованием initWithFrame: вместо initWithCoder:. Обсуждение началось в 2009 году, но это все еще не исправлено в XCode 4.5 / OSX 10.8.)
В моем случае я использовал обычный NSView для обертывания набора элементов управления (ползунок громкости и кнопки min / max), а не реализовывал собственный подкласс NSView.Я смог избежать этой проблемы, используя NSBox в качестве контейнера вместо NSView: я сделал NSBox прозрачным, без заголовков и без полей, так что в остальном он действовал как обычная оболочка NSView.Это было немного больше работы в IB, но избавило меня от необходимости подключать представление к элементу панели инструментов программным способом.