В моем приложении Mac у меня есть NSCollectionView с включенным множественным выбором. В моем приложении возможность выбрать более одного элемента является нормой, а необходимость нажимать cmd при щелчке для выбора нескольких элементов расстраивает некоторых пользователей, и большинство из них не понимает, что они могут это сделать (я получаю много функций запросы на множественный выбор).
Итак, я хочу изменить поведение так, чтобы:
- когда пользователь щелкает второй элемент, первый элемент остается выбранным (без необходимости удержания cmd)
- Когда пользователь щелкает выбранный элемент, этот элемент отменяется.
Я попытался переопределить setSelected в своем собственном подклассе NSCollectionViewItem следующим образом:
-(void)setSelected:(BOOL)flag
{
[super setSelected:flag];
[(MyView*)[self view] setSelected: flag];
[(MyView*)[self view] setNeedsDisplay:YES];
}
Вызов super setSelected необходим, чтобы убедиться, что представление коллекции работает правильно, но, похоже, именно оно отвечает за поведение по умолчанию.
Что мне делать вместо этого?