17

似乎我已经搜索了很长时间,但还没有找到一个很好的、简单的答案来解决我的问题。

我将 XCode 与 Cocoa/ObjC 一起使用,并尝试创建一个 NSTableView,它将值从 NSDictionary/Array 加载到单元格的不同部分。

例如,我试图将 NSImage、NSTextField 和其他项目放入自定义单元格(以及背景图像)。但是,我找不到如何创建这个的简单答案。

我用 UITableViews 为 iPhone 编写代码已经有一段时间了,似乎找不到与 NSTableViews 类似的方法。

任何帮助都会非常棒!

谢谢

多米尼克

4

3 回答 3

26

NSTableView 有-tableView:dataCellForTableColumn:row:. 只需在您的委托中创建您的 NSCell 子类,如果您需要对该行进行自定义,请返回它。如果您只是为表格视图中的每一行使用自定义单元格,您也可以只使用 IB 来设置自定义单元格类。

表格视图将根据需要复制单元格,因此如果效率更高,您可以将单元格保留为实例变量。表视图上的数据源方法或绑定正常工作,只是您将返回填充的字典而不是单个字符串或数字。您也可以将自定义模型对象直接传递给 tableview,尽管您必须使其可复制,或者setObjectValue:在您的单元格中覆盖以将其包装在 NSValue 中。

如果它是给你带来麻烦的 NSCell 子类化,那可能是一种学习体验。从-drawWithFrame:inView:绘制所有自定义对象开始,然后在需要更多功能时从那里开始。

于 2009-05-26T12:47:58.473 回答
8

观看 WWDC 2011 视频“基于视图的 NSTableView 基础到高级”(第 120 节)

https://developer.apple.com/videos/wwdc/2011/

这适用于 Lion (10.7) 及更高版本。

于 2012-01-17T22:59:00.157 回答
3

一个单元格一次只能保存一个对象值。使用图像和字符串/属性字符串作为属性创建一个模型对象,并用它填充表格视图。

此外,文本字段是一个视图。你的模型应该对它的表现一无所知——那是你的视图的工作。

于 2009-05-26T16:49:21.917 回答