NSColorWell не открывается при связывании с ValueTransformer - PullRequest
0 голосов
/ 26 февраля 2010

У меня есть NSColorWell, которое связано со свойством, содержащим экземпляр NSString, который преобразуется в NSColor через мой ColorTransformer (NSValueTransformer). По сути это превращает что-то вроде #FF0000 в NSColor. Это работает, как и ожидалось, но ColorWell больше не открывает свою панель при нажатии. Когда я отключаю привязку, она снова работает. Есть какие-нибудь подсказки, что я здесь делаю не так?

1 Ответ

1 голос
/ 26 февраля 2010

вернуть ДА в

+(BOOL)allowsReverseTransformation

в примере с Apple Docs он возвращает NO, однако в реализации по умолчанию он возвращает YES. Причина этого в теории достаточно проста: Apple не хочет, чтобы ваши пользователи могли устанавливать цвет, который затем приведет к сбою приложения (поскольку обратное преобразование не было реализовано). Тогда вам, вероятно, следует реализовать

- (id)reverseTransformedValue:(id)value

чтобы убедиться, что этого не произойдет, если вы этого еще не сделали. (Если у вас нет документов Apple, скажите, что это вызовет - (id) transformedValue: (id) value)

...