Как сделать обновление NSCollectionView
для отображения текущего выбранного элемента с помощью NSBox
? Отображение выбора в списке кажется базовой вещью, но у меня с этим возникают всевозможные проблемы.
Я прочитал этот вопрос, а также просмотрел пример кода от Apple. Кажется, есть несколько способов сделать это.
- Использование подклассов
NSCollectionViewItem
и специального "прототипа". - Используя
NSBox
.
Я хочу использовать способ NSBox
, так как он кажется простым и также используется в официальном примере кода.
По-видимому, это сделано, как описано в следующей цитате alternegro:
Если в качестве выделения будет достаточно другого цвета фона, вы можете просто использовать NSBox в качестве корневого элемента для представления элемента коллекции. Заполните NSBox цветом выделения по вашему выбору. Установите для NSBox значение Custom, чтобы заливка работала. Установите для NSBox прозрачность.
Свяжите атрибут прозрачности NSBox с выбранным атрибутом владельца файла (элемент коллекции). Установите преобразователь значения для прозрачной привязки в NSNegateBoolean.
Я застрял в самой первой части: «используйте NSBox в качестве корневого элемента для вашего (так в оригинале) представления элемента коллекции». Я попытался изменить «Пользовательский класс» на FoobarBox
, который наследуется от NSBox
, но, похоже, это не помогает, поскольку я не могу изменить цвет фона на синий и не могу привязать прозрачность. Любые указатели на то, как сделать отображение выбора в моем NSCollectionVuew, будут оценены.