O NSCOLORWELL não se abre quando vinculado ao Valuetransformer
-
22-09-2019 - |
Pergunta
eu tenho um NSColorWell
, que está vinculado a uma propriedade que contém um NSString
instância, que se transforma em um NSColor
através do meu colortransformer (NSValueTransformer
). Essencialmente transforma algo como #FF0000
em um NSColor
. Isso funciona como esperado, mas o Colorwell não abre mais o painel quando clicado. Quando desabilito a ligação, ele funciona novamente. Alguma pista sobre o que estou fazendo de errado aqui?
Solução
retornar sim em
+(BOOL)allowsReverseTransformation
O exemplo do Apple Docs tem que retornar não, no entanto, a implementação padrão retorna sim. O raciocínio por trás disso é, em teoria, é simples o suficiente: a Apple não deseja que seus usuários possam definir uma cor que falhará o aplicativo (sendo que uma transformação reversa não foi implementada). Você provavelmente deve implementar
- (id)reverseTransformedValue:(id)value
Para garantir que isso não aconteça, se você ainda não o fez. (Se você não é os documentos da Apple, diz que vai ligar - (id) transformedValue: (id) valor)