似乎我一直在寻找很长一段时间,并没有找到一个很好的,简单的答案来解决我的问题.
我正在使用XCode和Cocoa/ObjC,我正在尝试创建一个NSTableView,它将NSDictionary/Array中的值加载到单元格的不同部分.
例如,我正在尝试将NSImage,NSTextField和其他项目放入自定义单元格(以及背景图像).但是,我找不到如何创建这个的简单答案..
我已经用UITableViews编写了一段时间的iPhone代码,但似乎无法找到与NSTableViews相似的方式.
任何帮助都会非常棒!
谢谢
多米尼克
NSTableView有-tableView:dataCellForTableColumn:row:
.只需在委托中创建NSCell子类,如果需要对该行进行自定义,则返回它.如果您只是在表视图中的每一行使用自定义单元格,您也可以使用IB来设置自定义单元格类.
表视图将根据需要复制单元格,因此如果单元格效率更高,则可以将单元格保留为实例变量.表视图上的数据源方法或绑定按照通常的方式工作,只有您将返回填充的字典而不是单个字符串或数字.您也可以将自定义模型对象直接传递给tableview,尽管您必须使其可复制,或者setObjectValue:
在单元格中覆盖以将其包装在NSValue中.
如果它是NSCell的子类,它会给你带来麻烦,那可能是一种学习经验.首先-drawWithFrame:inView:
绘制所有自定义对象,然后从那里开始,因为您需要更多功能.
观看WWDC 2011视频"基于视图的NSTableView基础到高级"(会话120)
https://developer.apple.com/videos/wwdc/2011/
这适用于Lion(10.7)及更高版本.