1

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

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

компания Apple реализует что-то, а как это в Iweb:

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

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

xcode http://img690.imageshack.us/img690/7851/ixcode.jpg

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

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

Update: решение

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

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

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 

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

ответ

5

Вы хотите IKImageBrowserView.

+0

Да. Я второй это. Все, что вам нужно предоставить, - это URL-адрес каждого из ваших статических изображений. –

+0

Dang, это работает как шарм. Благодарю. –

 Смежные вопросы

  • Нет связанных вопросов^_^