【发布时间】:2015-02-18 17:57:56
【问题描述】:
在我的 Mac 应用程序中,我有一个启用了多选的 NSCollectionView。在我的应用程序中,能够选择多个项目是常态,并且在单击以选择多个项目时必须按 cmd 让一些用户感到沮丧,并且大多数人没有意识到他们可以做到这一点(我有很多功能请求多选)。
所以,我想改变这种行为:
- 当用户单击第二个项目时,第一个项目保持选中状态(无需按住 cmd)
- 当用户单击选定的项目时,该项目被取消选择
我尝试在我自己的 NSCollectionViewItem 子类上覆盖 setSelected,如下所示:
-(void)setSelected:(BOOL)flag
{
[super setSelected:flag];
[(MyView*)[self view] setSelected: flag];
[(MyView*)[self view] setNeedsDisplay:YES];
}
需要调用 super setSelected 以确保集合视图正常运行,但它似乎也是导致默认行为的原因。
我应该怎么做?
【问题讨论】:
-
现在有点晚了,但我想知道:为什么不支持使用 Shift 键进行选择以扩展选择范围,就像它几乎可以在任何地方(TableViews、Finder)一样工作?
标签: cocoa nscollectionview nscollectionviewitem