此例子实现了不用Array Controller,基于view-based tableview实现添加和删除。当然,也可以用Array Controller实现,这样可以省去NSTableViewDelegate和NSTableViewDataSource的实现。从这个例子开始,以后不再采用cell-based tableview了,因为这类型的tableview是没办法添加图片,会被淘汰。之后默认是view-based tableview。关于cell-based tableview的NSTableViewDelegate和NSTableViewDataSource自定义,可以参考Chapter 06 - Todo(C#实现)

好了,布局和上一个例子一样。如何创建RMDocument类,请参考上一个例子。但是关于tableview和table cell view,有一些属性要添加。

tableview添加Multiple

 

 table cell view自定义column的identifier,建议保持和属性Export的名字一致。

 

 table cell view添加可编辑属性。

 

 现在看看RMDocument类下的数据定义。其中employees的setter和getter不用遵循命名格式(因为我们不会用到Array Controller)。我只是不想改了。

 

 TableViewDataSource自定义类(注意通过xcode绑定)。document是RMDocument类object通过xcode绑定到TableViewDataSource下的一个outlet。

 

 view-based tableview不再在NSTableViewDataSource里面实现cell的数据了,而是在TableViewDelegate中实现(注意通过xcode绑定)。

 

 

 看看效果图(支持多选删除)。

 

 

 

posted on 2022-08-19 09:59  dalgleish  阅读(23)  评论(0编辑  收藏  举报