Внутри моего .xib, я разместил NSColorWell
внутри NSView
и подключил IBAction
к контроллеру к отправленным действиям NSColorWell
(через владельца файла). Я решил, что отвечу на клик в своем контроллере и отправлю активировать, чтобы открыть NSColorPanel
.NSColorWell не отправляет действие на клик?
Но в отличие от других моих элементов управления, я не получаю вызываемый IBAction
. Щелчок вызывает действие перетаскивания на цвет. Я заметил, что этот элемент управления не получается из NSActionCell
(как и все мои другие элементы управления). Каков правильный контроль, который должен использоваться для отображения цвета и вызова NSColorWell
при нажатии?
(примечание: это Xcode/IB 3.2.x)
Спасибо, Ник, ты был абсолютно прав! Как в мире кто-нибудь, кто использует IB, даже знает, что это функция флажка «Bordered»? Как ни странно, эти границы действительно ТОЛСТЫЕ, и этот контроль не поддерживает «небольшие» или «мини» размеры управления. Теперь мне просто нужно выяснить, как заставить меня контролировать, - действие NSColorWell «не вызвано». Я предполагаю, что мне нужно получить NSColorPanelColorDidChangeNotification? – SMGreenfield
Вы, вероятно, не хотите использовать это, потому что это может происходить из другого экземпляра NSColorPanel. (Например, щелкните правой кнопкой мыши в любом NSTextView, и вы сможете выбрать «Шрифт»> «Показать цвета». Тогда также появится палитра.) Вместо этого вы должны привязать объект, который должен знать об изменении, к значению NSColorWell, а затем отреагируйте на -observeValueForKeyPath: .... Вы также можете подклассифицировать колодец и предоставить ему делегат, который вызывается, когда вызывается -setObjectValue:, но это звучит как излишний для этого случая. –
Вы можете, конечно же, прослушать '' '' NSColorPanelColorDidChangeNotification''' и проверить свойство '' 'object''' уведомления, чтобы сравнить его с вашим экземпляром. Это может быть еще проще, чем в моих двух других предложениях. :-) –