NSCOLORWELL لا يفتح عند ربطه بـ Valuetransformer
-
22-09-2019 - |
سؤال
انا لدي NSColorWell
, ، والتي ترتبط بممتلكات تحتوي على NSString
مثيل ، الذي يتحول إلى NSColor
من خلال بلدي colontransformer (NSValueTransformer
). إنه يحول شيئًا مثل #FF0000
إلى NSColor
. يعمل هذا كما هو متوقع ، لكن Colorwell لم يعد يفتح جزءًا منه عند النقر عليه. عندما أقوم بتعطيل الربط ، فإنه يعمل مرة أخرى. أي أدلة على ما أفعله خطأ هنا؟
المحلول
العودة نعم في
+(BOOL)allowsReverseTransformation
مثال مستندات Apple قد عاد إلى رقم ، ومع ذلك فإن التنفيذ الافتراضي قد أعاد نعم. المنطق وراء ذلك بسيط من الناحية النظرية بما فيه الكفاية: لا تريد Apple أن يكون المستخدمون قادرين على تعيين لون سيصطدم بالتطبيق بعد ذلك (كونه لم يتم تنفيذ التحول العكسي). يجب أن تنفذ بعد ذلك
- (id)reverseTransformedValue:(id)value
للتأكد من عدم حدوث ذلك ، إذا لم تكن قد فعلت ذلك بالفعل. (إذا لم تقل مستندات Apple ، فسيتم استدعاء - (ID) Transforvalue: (id) قيمة)