2011-02-02 8 views
1

UIButton в конечном итоге наследует NSObject, а NSObject реализует протокол NSKeyValueBindingCreation. Итак, почему я не могу привязать свойство UIButton к свойству другого класса?Как привязать свойство UIButton к другому свойству?

[myUIButton bind:@"enabled" 
     toObject:myOtherObject 
    withKeyPath:@"otherObjectBOOLProperty" 
     options:nil]; 

Это приводит к предупреждению

'UIButton' может не реагировать на '-bind: ToObject: withKeyPath: опции:'

То, что я пытаюсь сделать, это связать включенное состояние моего UIButton с myOtherObject.otherObjectBOOLProperty.

ответ

3

Это не так, IOS»NSObject делает не соответствовать протоколу NSKeyValueBindingCreation.

Я бы использовал прямо-таки Key-Value Observing в вашем случае.

См. Adopted Protocols из NSObject.

+0

тьфу, да, спасибо , Это то, что я получаю за то, что одновременно ищут как операционную систему Mac OS, так и iOS. Поэтому я полагаю, что правильный способ сделать это через KVO напрямую? – devguydavid

+0

@ cygnl7 Да, используйте KVO. –

+0

@ cygnl7 Я также отмечу, что 'NSKeyValueBindingCreation' является неофициальным протоколом, поэтому он не отображается в разделе« Принятые протоколы »OS X« NSObject ». –

1

NSObject соответствует только протоколу NSObject, но вы можете использовать КВО, чтобы связать это:

Key-Value Observing Programming guide специально читать, как зарегистрировать недвижимость, которые должны соблюдаться и как получать уведомления;)

Смежные вопросы