NSColorWell не открывается при привязке к ValueTransformer

StackOverflow https://stackoverflow.com/questions/2337798

  •  22-09-2019
  •  | 
  •  

Вопрос

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

Это было полезно?

Решение

вернуть ДА в

+(BOOL)allowsReverseTransformation

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

- (id)reverseTransformedValue:(id)value

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top