首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >点击查看NSCollectionViewItem

点击查看NSCollectionViewItem
EN

Stack Overflow用户
提问于 2013-11-12 01:07:45
回答 1查看 1.5K关注 0票数 0

我是可可开发公司的新手,所以我不太清楚它的许多概念.我正在尝试构建一个简单的应用程序,它将使用Flickr检索用户的照片集并在NSCollectionView中显示它们,通过单击它们,将开始下载照片集的照片。

我正在使用Xcode 5.0.1和最新的SDK,即10.9

在阅读了一些关于如何使用绑定处理NSCollectionView的文章之后,我现在面临着另一个关于在NSCollectionViewItem中处理事件的问题。

根据我的理解,鼠标事件可以很容易地通过实现来处理。

代码语言:javascript
复制
-(void) mouseDown:(NSEvent *)theEvent

在NSView子类中,例如

代码语言:javascript
复制
@interface MyViewController : NSView {
}

并将视图自定义类分配给我在InterfaceBuilder中创建的子类(InterfaceBuilder)。

现在,我没有问题要像上面这样做了,而且在大多数小部件中,按预期的方式处理了鼠标。问题是,我有一个NSCollectionViewItem子类,如下所示:

代码语言:javascript
复制
@interface MyItemController : NSCollectionViewItem {
}

我试图在那里实现mousedown方法,这个类在一个分离的nib文件中被设置为file的所有者。当NSCollectionView加载时,视图将自动加载。

现在,MyItemController不能作为IB视图对象中的customer类,这显然是因为它不是一个NSView子类,而是一个NSCollectionViewItem子类。

如果我编写了一个NSView的子类,并使视图对象的自定义类,我可以得到鼠标向下。但是,在这种方法中,我无法获得representedObject和NSMutableArray索引,它们是我需要的基本信息。

因此,我的问题是,如何正确地处理NSCollectionViewItem的鼠标事件视图?我在GitHub中的代码如下:

https://github.com/jasonlu/flickerBackupTool

谢谢!

更新

我发现了一种解决这个问题的方法是通过子类NSView并实现鼠标下来,并使用超级视图、子视图来获取和索引以及数组本身。

代码语言:javascript
复制
- (void)mouseDown:(NSEvent *)theEvent  {
    NSCollectionView *myCollectionView = (NSCollectionView *)[self superview];
    NSInteger index = [[myCollectionView subviews]  indexOfObject:self];
    NSLog(@"collection view super view: %@",myCollectionView);
    NSLog(@"collection index: %ld",index);
    NSLog(@"array: %@", [[myCollectionView content] objectAtIndex:index]);
}

这似乎很有效,但如果这是最佳实践,我不会起诉,它看起来依赖于太多的视图,并且花了很长的时间才到达数组。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-12 01:26:45

我不认为NSCollectionView总是创建所有子视图(远离查看区域的子视图可能会被延迟和/或重用)。因此,我不会依赖于子视图搜索。

重载NSViewController以创建NSView,以便分配给NSViewController的representedObject可以从NSView访问。在那里,您可以搜索实际内容以确定索引。

重载NSCollectionView并在视图创建期间记录实际索引可能不太好,因为被删除的项可能是doesNot重新创建任何视图。

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

https://stackoverflow.com/questions/19919093

复制
相关文章

相似问题

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