2014-12-12 1 views
9

Мне удалось получить атрибуты IBDesignable/IBInspectable, работающие с напрямую подклассы NSView, но не с прямым подклассом NSButton. Это вызывает у меня вопрос, если на самом деле реализация какао каким-то образом ограничена только NSView.Новый атрибут IBDesignable Interface Builder работает с NSButton и другими элементами управления в Cocoa?

Почти каждый пример в Интернете (и компании Apple WWDC 2014 Xcode видео) использовать NSView, а затем перетащить компонент пользовательского вида из библиотеки на холст (а затем изменить его класс).

Возможно ли использовать IBDesignable с подклассами NSControl и NSButton и т.д ...? Я видел много примеров в Интернете, используя UIButton.

Если это возможно, то что вы должны перетаскивать из библиотеки на холст? Для него не имеет смысла быть «обычным представлением». С другой стороны, нет «настраиваемого контроля».

Чтобы быть ясным, я могу получить атрибут IBInspectable для отображения во время разработки; но любые изменения, похоже, не отражают рендер во время разработки.

Чтобы обойти эту проблему, чтобы обернуть любые пользовательские NSButton я хочу, чтобы создать внутри NSView (с помощью композиции), но это кажется немного рубить ...

+0

Вы нашли решение? – ZevsVU

ответ

0

Я начал играть с обычаем NSButton и NSButtonCell.

Перетаскивание кнопки из библиотеки на холст и изменение ее класса, а класс ячейки не выполняется. Я думаю, это связано с тем, что Interface Builder по-прежнему выполняет множество пользовательских настроек для настройки NSButtonCell.

Что подходит для меня - это перетащить пользовательский вид из библиотеки на холст и установить его класс. Для этого вам нужно настроить ячейку внутри NSButtons -initWithCoder:.

Также я нашел sample от Apple с пользовательским флажком с поддержкой слоя.

+1

Не могли бы вы уточнить: «Для этого вам нужно настроить ячейку внутри NSButtons -initWithCoder:« и почему это работает. Недавняя документация от Apple говорит, что не прикасаться к buttonCell, поэтому я не уделял много внимания темам «ячейки». Благодарю. – Sam

+1

Также, почему образец Apple работает? – Sam

+0

У кого-то есть этот образец? У меня есть ошибка «Извините, эта страница не найдена». = ( – ZevsVU