Я просто пытаюсь использовать флажок, чтобы включить / отключить NSTextField. Я перечислил ниже последний метод, который я попытался подробно, но я попробовал его несколькими способами:
Используйте NSObjectController с объектом контента, привязанным к контроллеру, и флажок и метку, привязанную к выбору NSObjectController, с ключом пути к свойству в контроллере. С и без NSIsNil Трансформатор.
Нет NSObjectController с флажком и меткой, привязанной к контроллеру с ключом пути к свойству BOOL в контроллере. С и без NSIsNil Трансформатор.
NSObjectController с добавленными ключами и установленным «Prepare Content» с флажком и меткой, привязанной к выбору NSObjectController и добавленным ключом для пути ключа. С и без NSIsNil Трансформатор.
Я просмотрел множество примеров и прочитал документацию, и мне не повезло, что это сработало.
- Чистый проект какао.
- NSObjectController "Контроллер объектов" добавлен в main.xib.
- Установите NSObjectController в IB на «Подготовка контента»
- Добавьте к ключам значение «enableText».
- Перетащите флажок и пометьте на виде.
- Добавить привязку к флажку «Значение», привязанному к «Контроллеру объекта», с ключом контроллера «выбор» и Путьом модальной клавиши «enableText». На этом этапе автозаполнение сообщает "Нет найденных завершений"! Разве он не найдет тот, который я добавил в Контроллер объектов ???
- Добавить привязку к метке для «Включено», привязанного к «Контроллеру объекта», с ключом контроллера «выбор» и Путьом модальной клавиши «enableText». То же самое.
Беги, и он падает. Если я установлю привязку метки, чтобы иметь Transformer of NSIsNil или любую из опций, которые она предоставляет, она не падает, но тогда флажок не изменяет включенное состояние метки. Результат аварии ниже.
Следует отметить, что если я также добавлю привязку между значением метки и тем же ключом, что и активированная привязка, то содержимое метки будет переключаться между 0 и 1, когда я переключаю флажок. Итак, похоже, что это должно легко работать для включенной привязки ... но это не так.
2012-02-20 23:43:58.273 TestBindings2[12346:903] -[_NSControllerObjectProxy copyWithZone:]: unrecognized selector sent to instance 0x100123540
2012-02-20 23:43:58.275 TestBindings2[12346:903] An uncaught exception was raised
2012-02-20 23:43:58.276 TestBindings2[12346:903] -[_NSControllerObjectProxy copyWithZone:]: unrecognized selector sent to instance 0x100123540
2012-02-20 23:43:58.278 TestBindings2[12346:903] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[_NSControllerObjectProxy copyWithZone:]: unrecognized selector sent to instance 0x100123540'
Использование XCode 4.2 и OSX 10.6.8.