Kyl*_*yle 31 cocoa objective-c nstableview
我有一个NSTableView,委托和数据源指向我的控制器.我试过实施
- (id)tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex
Run Code Online (Sandbox Code Playgroud)
方法,但无论我返回什么,表总是在数据中显示"表视图单元格".我可能做错什么的想法?附上两张照片,显示我已正确设置了委托(它还显示了正确的行数).
请注意,我也尝试过返回@"Hello World"
所有内容,但我得到了相同的结果.
小智 55
只需在IB中更改表视图的Content Mode
to Cell Based
.IB将显示Text Cell
为单元格占位符,它们在运行时由您返回的任何内容填充tableView:objectValueForTableColumn:row:
Kyl*_*yle 10
终于想通了.我的单元格由于某种原因似乎包含TableCellView和文本字段单元格.我删除了Table Cell View
,现在一切正常.我不知道我是怎么进入那个州的.
较新版本的XCode:
大多数响应涉及将表视图组件转换为基于单元格的表视图.如果这就是你想要的那么那就没事了,你很高兴.在提出问题时,基于单元格的表格是常态,当Apple将窗口组件更改为基于视图的组件时,显然会引起很多混乱.今天,Apple的文档建议您应该使用基于视图而不是基于单元格的表.
如果您- tableView:objectValueForTableColumn:row:
在数据源中使用,则会出现问题中描述的问题.您不能将此方法用于基于视图的表,它仅适用于基于单元格的表.相反,您需要使用该NSTableViewDelegate
方法- tableView:viewForTableColumn:row:
.您不需要使对象符合NSTableViewDelegate
协议以使用此方法,但必须将其设置为表的委托.
回应Cœur,引用Apple在线文档.
仍支持基于NSCell的表在OS X v10.6及更早版本中,每个表视图单元都必须是NSCell的子类.这种方法在设计复杂的自定义单元时造成了限制,通常需要您编写自己的NSCell子类.提供动画,例如进度视图,也非常困难.在本文档中,这些类型的表视图称为基于NSCell的表视图.OS X v10.7及更高版本继续支持基于NSCell的表,但它们通常仅用于支持遗留代码.通常,您应该使用基于NSView的表.
归档时间: |
|
查看次数: |
9952 次 |
最近记录: |