首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSCollectionViewItem双击操作?

NSCollectionViewItem双击操作?
EN

Stack Overflow用户
提问于 2009-10-12 00:39:22
回答 2查看 2.4K关注 0票数 6

如何设置用户双击NSCollectionViewItem时的操作。例如,NSTableView具有setDoubleAction方法。NSCollectionView也有类似的功能吗?

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-10-12 00:52:16

您可能希望在NSCollectionViewItem中处理此问题,而不是在NSCollectionView本身中处理(以解决您的NSTableView类比问题)。

票数 2
EN

Stack Overflow用户

发布于 2017-07-17 05:31:20

我知道这个问题很古老,但它现在是Google上的第三个结果,我找到了一种不同的、非常简单的方法,我在其他地方没有见过这种方法。(我不仅需要操作表示的项目,还需要在我的应用程序中完成更复杂的工作。)

NSCollectionView继承自NSView,因此您可以简单地创建自定义子类并覆盖mouseDown。这并不是完全没有缺陷-在使用NSCollectionViewindexPathForItem方法之前,您需要检查点击计数,并将点从主窗口转换为集合视图的坐标:

代码语言:javascript
复制
override func mouseDown(with theEvent: NSEvent) {
    if theEvent.clickCount == 2 {
        let locationInWindow = theEvent.locationInWindow
        let locationInView = convert(locationInWindow, from: NSApplication.shared.mainWindow?.contentView)


        if let doubleClickedItem = indexPathForItem(at: locationInView){
        // handle double click - I've created a DoubleClickDelegate 
        // (my collectionView's delegate, but you could use notifications as well)
...

这感觉好像我终于找到了苹果打算使用的方法--否则,indexPathForItem(at:)就没有存在的理由了。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1552220

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档