NSCollectionView - Базовая привязка данных - не отображается, пока я не изменю размер окна - PullRequest
2 голосов
/ 02 марта 2012

Несмотря на то, что я добился больших успехов в настройке NSCollectionView, благодаря подсказкам, которые я блестел здесь и в Интернете, у меня возникли некоторые трудности, и я надеюсь, что кто-то может помочь.У меня есть объект Core Data, который содержит информацию о видеофайлах и NSCollectionView, который отображает миниатюру предварительного просмотра каждого из этих видео.У меня есть настройки привязок в NSCollectionView.

При первой попытке настроить привязки я настроил контроллер массива в режиме класса и привязал его содержимое к NSMutableArray, который я заполнял всеми объектами из моих видео.сущность в windowDidLoad.Я выполнял addObject на контроллере массива, чтобы заставить их появляться.Это работает хорошо, за исключением того факта, что это занимает много времени, если у вас есть много объектов для загрузки.

Итак ... Мне показалось глупым копировать все объекты в массив, когда можно связать NSCollectionView непосредственно с Core Data.Я изменил свой ArrayController на режим Entity и настроил контекст управляемого объекта так, чтобы он указывал на управляющий объект моего объекта управления управления объектами.Когда я запускаю свое приложение, перед отображением окна на экране возникает задержка.Фактически, другие вещи, которые я делаю в windowDidLoad, немедленно обрабатываются, но для отображения окна требуется еще 5-10 секунд.Как только это произойдет, ничего не отображается в NSCollectionView.

Сначала я думал, что это просто не работает, пока я случайно не изменил размер окна и все элементы не появились в представлении коллекции.Я пытался узнать, есть ли способ узнать, когда окно действительно отображается, чтобы я мог вызвать [collectionView setNeedsDisplay: YES], но либо он не работает, либо я вызываю его не в нужном месте.

У кого-нибудь есть идея, почему объекты не просто появляются?Я также хотел бы, чтобы окно отображалось немедленно, а затем для представления коллекции для загрузки элементов из базовых данных.Загрузка непосредственно из Core Data кажется намного быстрее, чем копирование элементов в массив.Я был бы рад опубликовать любой код, который вы хотели бы видеть, хотя, поскольку в IB установлены привязки, показывать особо нечего.:)

Спасибо!

...