Привязка к NSCollectionViewItem приводит к сбою Xcode - PullRequest
3 голосов
/ 29 июля 2011

Использование XCode 4.1 Я сталкиваюсь с падением, когда пытаюсь использовать CollectionView.

Вот шаги, которые я делаю:

  1. Из нового проекта отредактируйте файл MainMenu.nib.
  2. Добавить NSCollectionView в окно, которое также добавляет представление коллекции Предмет и новый вид В новом виде
  3. Добавить элемент управления, например, NSTextField
  4. Выберите элемент управления и переключите инспектор на панель привязки.
  5. Попытка связать что-либо с коллекцией Посмотреть объект. После выбора элемента представления коллекции в раскрывающемся меню Откроется диалоговое окно «Внутренняя ошибка». Попытка продолжить из этого диалога делает область привязки исчезнет, ​​пока вы не перезапустите XCode

Это случается с кем-то еще или это просто то, с чем я сталкиваюсь? Есть ли способ обойти это, чтобы позволить мне привязать к элементу представления коллекции (я хочу в конечном итоге привязать к значению presentObject) в XCode или в коде.

Я попытался создать пользовательский подкласс NSCollectionViewItem, который использует отдельный файл пера, и установить его как itemPrototype для NSCollectionView, но тогда все пошло не так.

Ответы [ 3 ]

6 голосов
/ 05 августа 2011

Я обнаружил, что разделение представления элемента представления коллекции на его собственную XIB, а затем переподключение соединений, так что прототип элемента представления коллекции загружает новый XIB, позволит вам создавать привязки в конструкторе интерфейса без его сбоя. Я следовал за этими шагами ...

  1. Удаление представления элемента представления коллекции из xib по умолчанию.
  2. Создание нового представления и наследования XIB от NSCollectionViewItem.
  3. Создайте элемент представления коллекции в новом представлении.
  4. Привязать поля к владельцу файлов нового представления.
  5. Вернувшись в xib представления коллекции, обновите свойства элемента представления коллекции, чтобы загрузить имя корзины нового xib.

Я не уверен, что это быстрее, чем делать это программно, но он позволяет вам управлять связыванием без написания кода. У меня сейчас работает несколько приложений.

1 голос
/ 04 октября 2011

Я нашел временное решение:

Выберите «Элемент представления коллекции» и в настройках «Инспектора атрибутов» → «Просмотр контроллера» установите «Имя пера» в «MainMenu».

После того, как вы это сделаете, он не потерпит крах, и вы сможете установить привязки.Обязательно очистите настройку «Имя пера» при создании приложения.

0 голосов
/ 29 июля 2011

Да, я тоже могу подтвердить эту ошибку, даже в Интерфейсном Разработчике 3.

Единственный обходной путь - сделать привязку программно:

[textField bind:@"value" toObject:collectionViewItem withKeyPath:@"representedObject.foo" options:nil];
...