2015-03-12 2 views
1

У меня есть приложение для iPad, которое использует UICollectionView, содержащий метку для отображения строковых элементов из массива. Теперь я работаю над созданием приложения для OSX, но я не уверен, как это сделать или что я должен использовать.UICollectionView эквивалент на Mac OSX

Это там эквивалент для Mac?

ответ

1

Я не использовал его, но быстрый Google показывает класс NSCollectionView. Из документов Apple:

Перед использованием класса NSCollectionView, вы должны иметь существующий окна на основе какао приложения в Xcode. Вы начинаете с создания класса в вашем приложении, которое будет хранить все данные для каждого отдельного объекта , который вы хотите отобразить. Затем в интерфейсе Builder вы добавите представление коллекции и контроллер массива в ваш проект . Вы также создадите массив, который будет хранить различные объекты , которые вы хотите отобразить, и чтобы все оставалось в синхронизации , вы создадите различные привязки между представлением коллекции, контроллером массива и массивом. Когда вы закончите, ваш коллекционный вид отобразит все ваши объекты в организованном порядке .

Особо следует обратить внимание на использование привязок какао. Аган, от компании Apple документы:

привязок какао функция позволяет установить прямую связь между элементом данных и их представлениями в представлении. Любое изменение , сделанное для значения данных, либо в представлении, либо в объекте, которое хранит данные, автоматически распространяется по соединению.

Использование привязок какао уменьшает код клея, который вам когда-то приходилось писать в , подключить представление к его базовой модели. Interface Builder, часть Xcode, позволяет быстро установить привязки Cocoa.

1

JNWCollectionView - современный вид коллекции для Mac. Любой, кто знаком с UICollectionView, должен чувствовать себя как дома.

+0

Вы использовали JNWCollectionView? Я клонировал проект на свою локальную машину, но при запуске APP ниже метода источника данных не вызывается. (JNWCollectionViewCell *) коллекцияView: (JNWCollectionView *) коллекцияView cellForItemAtIndexPath: (NSIndexPath *) indexPath – Utkarsha

+0

Мне пришлось использовать CocoaPods, чтобы заставить его работать. – bmueller

+0

Спасибо .. Еще один запрос мы можем реализовать Перетаскивание через него – Utkarsha

4

компании Apple добавили тонну функций в NSCollectionView в OS X 10.11 El Capitan (например NSCollectionViewDataSource, NSCollectionViewDelegate и NSCollectionViewFlowLayout Он может теперь почти использоваться как UICollectionView

Был специальный разговор об этом на WWDC 2015..: What's New in NSCollectionView

Они также создали типовой проект Objective-C: CocoaSlideCollection

Я создал простой пример проекта в Swift: CollectionViewElCapitan

обновлен до Xcode 9.1 и Swift 4:CollectionViewSwift4

+0

Самое превосходное. Для более сложного демонстрационного примера (от Apple Mothership) загляните в: https://developer.apple.com/library/mac/samplecode/Exhibition/Introduction/Intro.html#//apple_ref/doc/uid/TP40016178-Intro-DontLinkElementID_2 – Biodave

+0

Хороший пример, Клаас. Я думаю, стоит упомянуть, что вам не нужно было создавать свой собственный подкласс вида. Поскольку NSCollectionViewItem является подклассом NSViewController, вы можете связать элементы в nib непосредственно с его выходами. NSCollectionViewItem имеет удобную розетку для текстового поля и изображения, поэтому вам не нужно создавать свои собственные точки. Вам также не нужен LabelObject - поскольку все, что он делает, это обертывание строки, просто используйте String. – Ash