О браузерах

Браузер обеспечивает пользовательский интерфейс для отображения и выбора элементов из списка данных или из иерархически организованных списков данных, таких как пути к каталогам. При работе с иерархией данных уровни выведены на экран в столбцах, пронумерованных слева направо, начавшись 0. Браузер реализован классом NSBrowser, и каждый его столбец состоит из NSScrollView, содержащего NSMatrix, заполненный NSBrowserCells. NSBrowser полагается на делегата для предоставления данных в его NSBrowserCells.

Как работает выбор браузера

Каждая запись в столбце NSBrowser является Ячейкой NSBrowser. Эта ячейка может быть любой ячейкой ответвления (такой как каталог) или лепестковый элемент (такой как файл). Ячейка ответвления выводит на экран изображение, указывающее, что, когда по ячейке щелкают, NSBrowser выведет на экран новый столбец NSBrowserCells. Для отображения нового столбца NSBrowser отправляет себя addColumn сообщение, передающее его делегата для загрузки следующего столбца. NSBrowserCell может также быть загружен или разгружен; загруженные NSBrowserCells имеют свой набор состояния и готовы к дисплею. Если Вашему коду нужен доступ к определенному NSBrowserCell, можно использовать метод NSBrowser loadedCellAtRow:column:.

Выбор пользователя может быть представлен как символьная строка; если выбор является иерархическим (например, имя файла в каталоге), каждый компонент пути к выбранному узлу разделяется «/». Для использования некоторого другого символа в качестве разделителя вызовите метод NSBrowser setPathSeparator:.

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

Поскольку NSBrowser наследовался от NSControl, он имеет сообщение действия и целевой объект. Каждый раз, когда пользователь выбирает одну или более ячеек в столбце, браузер отправляет свое сообщение действия в его цель. NSBrowser также добавляет действие, которое будет отправлено, когда пользователь дважды щелкает по записи, позволяющей пользователю выбирать элементы без любых мер, принятых, и затем дважды щелкать для вызова некоторого полезного действия, такого как открытие файла.

Поскольку NSBrowserCell не наследовался от NSActionCell, он не содержит цель и значение действия и не может непосредственно участвовать в парадигме цели/действия. Однако метод действия NSBrowser может получить последнее, выбрал NSBrowserCell с selectedCell метод.