Привязки какао не работают, как ожидалось? Попытка привязать NSTextField включен к состоянию флажка - PullRequest
1 голос
/ 21 февраля 2012

Я просто пытаюсь использовать флажок, чтобы включить / отключить NSTextField. Я перечислил ниже последний метод, который я попытался подробно, но я попробовал его несколькими способами:

  1. Используйте NSObjectController с объектом контента, привязанным к контроллеру, и флажок и метку, привязанную к выбору NSObjectController, с ключом пути к свойству в контроллере. С и без NSIsNil Трансформатор.

  2. Нет NSObjectController с флажком и меткой, привязанной к контроллеру с ключом пути к свойству BOOL в контроллере. С и без NSIsNil Трансформатор.

  3. NSObjectController с добавленными ключами и установленным «Prepare Content» с флажком и меткой, привязанной к выбору NSObjectController и добавленным ключом для пути ключа. С и без NSIsNil Трансформатор.

Я просмотрел множество примеров и прочитал документацию, и мне не повезло, что это сработало.

  1. Чистый проект какао.
  2. NSObjectController "Контроллер объектов" добавлен в main.xib.
  3. Установите NSObjectController в IB на «Подготовка контента»
  4. Добавьте к ключам значение «enableText».
  5. Перетащите флажок и пометьте на виде.
  6. Добавить привязку к флажку «Значение», привязанному к «Контроллеру объекта», с ключом контроллера «выбор» и Путьом модальной клавиши «enableText». На этом этапе автозаполнение сообщает "Нет найденных завершений"! Разве он не найдет тот, который я добавил в Контроллер объектов ???
  7. Добавить привязку к метке для «Включено», привязанного к «Контроллеру объекта», с ключом контроллера «выбор» и Путьом модальной клавиши «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.

1 Ответ

1 голос
/ 21 февраля 2012

Просто попытался связать «Скрытый» ярлыка точно так же, как «Включен», и он скрыл это. Это заставило меня понять, что я делаю вещи правильно с привязкой. Я попытался вручную отключить метку и увидел, что это ничего не делает. Потом я где-то увидел, что там написано, что метки - это включенные NSTextFields, что говорит о том, что их нельзя отключить. Конечно же, изменив метку на текстовое поле, функциональность будет работать так, как задумано.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...