【发布时间】:2016-05-22 10:40:36
【问题描述】:
我最近查看了我一年前发布的一个应用程序。
而且我看到现在它里面的NSCollectionView 已经失去了选择功能,比如 SHIFT + Select 现在它的行为就像 CMD + Select。
(次要问题:用鼠标拖动时我也没有得到选择矩形。)
显然我希望恢复此功能,使用 shift 会将选择范围从先前单击的单元格扩展到按 shift 单击的单元格。
我做了什么:
//NSCollectionView * _picturesGridView; //is my iVar
//In initialization I have set my _picturesGridView as follows
//Initializations etc are omitted -- (only the selection related code is here)
[_picturesGridView setSelectable:YES];
[_picturesGridView setAllowsMultipleSelection:YES];
问题:有没有简单的方法来恢复这个功能?我在文档中没有看到任何相关内容,并且在互联网上找不到任何解决方案。
子问题:如果没有简单的方法来实现 -> 我是否应该继续创建自己的 FancyPrefix##CollectionViewClass 并按照我的意愿重新实现此功能 - 还是更好遍历现有的NSCollectionView 并强制它按我的意愿行事?
子注意:好吧,如果我发现自己重新实现它,它将是一个轻量级的,只会满足我自己的需求——我的意思是我不会模仿整个 NSCollectionView 类。
附言 我可以通过单击来选择一个项目我只能通过 CMD+Click 或 SHIFT+Click 选择多个项目,但后者的行为与我不想要的 CMD+Click 完全相同。
至于鼠标选择矩形 - 我没有覆盖任何鼠标事件。不清楚为什么我没有这个功能。
【问题讨论】:
-
你有没有想过这个,我只是注意到我不能一次选择多个,除了一个......在我的情况下,矩形确实有效,只是不是 SHIFT-select
-
不 :-(,我推出了自己的或子类的东西我不记得了,也许我明天会看看。
-
我也实现了自己的子类。我检查了选择的第一个开始位置以及下一个项目的选择位置,并通过 shift-click 忽略了默认功能并手动选择了范围内的每个索引。
标签: objective-c swift macos cocoa nscollectionview