cocoa - 自定义 "NSView"为 "NSCollectionViewItem": How to get or access collection item or its data from its view to perform a custom draw?

标签 cocoa xcode4

我是 XCode 新手,仍在学习 XCode(当前使用 Xcode 4.5.2)。

基于 Apple 关于 的教程 IconCollection ,我尝试制作一种缩略图 View 应用程序,其中 ImageMetada 字段存储在数组中作为 CollectionView 数据源。

以下是一些基本信息:

  1. 1 个 xib 文件 (MainMenu.xib)
  2. 1 个窗口,主视图上带有 CollectionViewTableView
  3. 1 个对象 Controller 使用自定义类名称委托(delegate)窗口和应用程序:ThumbsViewController
  4. 1 个放置在 xib 上(但不在主窗口或其 subview 上)的集合项的自定义 View 由 1 个 ImageView、1 个标签(文本字段)和 2 个按钮组成。该 View 使用自定义类:ThumbViewItem。第一个按钮用于设置日期信息,第二个按钮用于删除它。我的目的是,当我将鼠标放在当前项目上时,仅当在元数据上找不到日期信息时才应启用第一个按钮,仅当在元数据上找到日期信息时才应启用第二个按钮。我已将每个文件的 iboutlet 设置为 ThumbViewItem.h 文件(imgpic、imglabel、imgbtn1 和 imgbtn2)。这个想法可能有点像 Adob​​e lightroom 4 底部照片集的缩略图。
  5. NsCollectionViewItem 的 View socket 连接到 ThumbViewItem(4),其 itemPrototype socket 连接到 CollectionView window (2)
  6. 图像信息数组 (imageInfos),包括 ThumbsViewController.h(3) 上定义的图片和元数据。我计划将此数组用作共享数组,用于 CollectionView 和 TableView
  7. 数组中存储的数据是imageinfo.h中定义的名为imageinfo的接口(interface)。我在上面放了缩略图和元数据字典。

表格可以正确显示数组中存储的信息,包括文件名、路径和元数据(日期和 GPS 信息)。但 CollectionItem 的自定义 View 不会。 没有图像,没有名字,没有信息。

在调试时,我发现 IBOutlet 中的每个:imgpic、imglabel、imgbtn1 和 imgbtn2 均为 null。

为什么所有 IBOutlet 属性/链接都不起作用?

有什么我忘记了吗?

如何从与集合项关联的自定义 View 中获取存储在 imageinfos 数组中的图像信息以用于自定义绘制目的?

CollectionView ---> 集合项 ---> 自定义 View

例如,在与索引号 4 处的集合项关联的自定义 View 上执行自定义绘制时,我如何获取该索引(数字 4)?

我获取索引的代码是将其 super View 作为collectionview获取,并在 super View 的 subview 上获取其索引,如下所示:

-(NSInteger) getIndexInCollection 
{
    return [[[self superview] subviews] indexOfObject:self];
}

此代码的问题是有时有效有时无效。

如有任何帮助,我们将不胜感激。谢谢。

最佳答案

阅读有关 NSCollectionview、IconViewPrototype.xib 的文档,注意简单的代码使用了一些绑定(bind),在 Collection.xib 中应该确定如何使用 IconViewPrototype.xib 来显示自定义 View ,并确定如何根据绑定(bind)获取数据源.

关于cocoa - 自定义 "NSView"为 "NSCollectionViewItem": How to get or access collection item or its data from its view to perform a custom draw?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14139401/

相关文章:

cocoa - strtotime -> NSDate

cocoa - cocoa 中的数据检测器

iphone - Xcode 构建正常,但存档失败,找不到 -load_all 的库

xcode - 如何更改 Xcode 4 中文本突出显示的颜色以显示警告和错误?

cocoa - 帮助手册中的 anchor 不起作用

iphone - 以多个 NSString 作为参数的 Objective C 方法

objective-c - 指定 NSOpenPanel RunModal 的初始目录?

objective-c - 为什么有些对象在 objective-c 中使用前不需要初始化?

objective-c - 目前是否有适用于 iOS4 和 Xcode4 的 BDD 解决方案?

xcode - Three20 v1.1和Xcode 4