Arhn - архитектура программирования

Как я могу реализовать представление на основе эскизов для выбора пользователя в Cocoa?

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

В различных точках моего интерфейса пользователю предлагается выбрать что-то довольно визуальное (например, выбрать макет для страницы или вариант цвета). Этот выбор делается из заранее определенного набора параметров. Обычно вы бы использовали NSPopUpButton или, может быть, NSTableView, но я бы хотел, чтобы пользователь видел эскизы каждого варианта выбора. Эти эскизы также должны быть приличного размера — не менее 100x100 пикселей. Каждая миниатюра также должна сопровождаться текстовой меткой. Одновременно допускается только один выбор.

Apple реализует нечто подобное в iWeb:

iweb ​​http://img187.imageshack.us/img187/5744/iweb.jpg

Конечно, вы привыкли видеть что-то подобное с маленькими иконками:

xcode

Я думаю, что NSCollectionView — это место для начала, но я когда-либо видел, чтобы это использовалось только в гораздо более сложных сценариях (например: отображение содержимого каталога, поддержка перетаскивания и т. д.). Поэтому большинство код, который я нашел, довольно сложен.

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

Обновление: решение

Я использовал IKImageBrowser, как было предложено. Это руководство было очень полезным. В IB: я только что сделал IKImageBrowser в своем интерфейсе, завернул его в представление прокрутки и сделал его источником данных объекта браузера. В коде: реализовал протокол источника данных в моем контроллере, как объясняется в учебнике, установил для AllowMultipleSelection и allowEmptySelection значение NO, создал настраиваемый объект изображения, используя представление URL-изображения точно так, как описано в руководстве.

Затем, чтобы получить выбор, я написал следующий метод, который будет запускаться, когда пользователь нажимает кнопку «ОК»:

NSIndexSet *retval = [imageBrowser selectionIndexes];
NSInteger i = [retval firstIndex];  //the index of the selection. Corresponds to index in my array data source
NSString* path = [[styleViewData objectAtIndex:i] imageRepresentation]; //path to selected image, if you need it

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


Ответы:


1

Вам нужен IKImageBrowserView.

05.12.2009
  • Ага. Я поддерживаю это. Все, что вам нужно предоставить, это URL-адрес каждого из ваших статических изображений. 05.12.2009
  • IKImageBrowserView теперь устарел. 19.04.2019
  • Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..