objective-c - 我如何将鼠标右键菜单添加到 NSCollectionViewItem

标签 objective-c nscollectionview

我有一个问题。如何将鼠标右键菜单添加到 NSCollectionViewItem。 作为尝试,我还使用了 Apple 的演示应用程序 IconCollection。我尝试将 NSMenu 拖到 IconViewPrototype.xib 并将其连接到 IB 中的 View 菜单导出。但是在构建和运行时,单击鼠标右键,没有任何反应。我认为NSBox也是NSView的子类,应该支持鼠标右键菜单。

最佳答案

我最终创建了一个 NSView 子类,用作 CollectionViewItem 的 View 。在那里我设置了一个委托(delegate)(在 IB 中连接),并用它来捕捉鼠标右键单击并打开菜单:

-(void)rightMouseDown:(NSEvent *)theEvent {
NSMenu *menu = [self.delegate menuForCollectionItemView:self];
[menu popUpMenuPositioningItem:[[menu itemArray] objectAtIndex:0]
                    atLocation:NSZeroPoint
                        inView:self];
} 

这仍然需要一些代码来将菜单定位到用户点击的位置,但这只是一个开始。

如果有人有更清洁的方法,我很想听听。

关于objective-c - 我如何将鼠标右键菜单添加到 NSCollectionViewItem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10463740/

相关文章:

objective-c - 文件类型的 cocoa 图标?

iphone - 在我的代码的其余部分中访问输出的 'NSInteger'

iphone - 在 iPhone 上存储信息

cocoa - 如何在 Cocoa 中实现基于缩略图的用户选择 View ?

swift - 从集合中引用文本标签查看项目

ios - 属性要求在 objective-c 中命名字段错误

objective-c - 格式字符串不是字符串文字(可能不安全)

swift - 当 NSCollectionView 滚动到内容末尾时加载更多数据 (macOS)

swift - NSCollectionView 滚动无法正常工作

iphone - NSCollectionView for Cocoa-Touch (iPhone/iPad)