在NSTableView行中显示多个对象

时间:2010-01-03 12:15:05

标签: objective-c cocoa nsmutablearray nsarray nstableview

我是stackoverflow的新人:)但我认为,这是提出问题的正确位置。 我是Cocoa和Objective-c& C的新开发人员。我正在尝试编写我的第一个Mac应用程序:ToDo App。

此时,我可以保存ToDo并删除它们,但现在,我想添加一些功能,如CreationDate,一些标签(在mutablearray中),以及ToDo是否完成。我没有使用ArrayController,我将编码的NSMutableArray保存到文件(库/应用程序支持/ AppName)中并从那里读取它。

这一切必须在一行中,因为它看起来像这样:

Current appearance http://img683.imageshack.us/img683/7595/bild2ss.png

如果标题是,那么蓝盒子的ToDo的内容应该是状态(蓝色=撤消,灰色=完成),字幕应该是日期和标签(03.01.2009- tag1,tag2,tag3)

我现在如何将对象添加到mutablearray中,但是,如果我想将所有这4个信息保存到此数组中,我不知道如何制作它。

我有一个模型,正在初始化这4个信息,但如何保存?我必须在一个数组中保存这个信息,并在我的mutablearray中保存这个数组吗?

2 个答案:

答案 0 :(得分:6)

解决方案实际上恰恰相反:每行一个对象。

这是您的模型图层(MVC中的M)的来源:每行的对象是model object,您构建的类的实例,以及图标,标题和副标题是该对象的属性。

然后,为表列创建一个custom cell以这种方式显示模型对象。单元格是View层的一部分 - MVC中的V。

MVC中的C位于模型和视图之间:它是拥有模型的对象,是表视图的数据源(无论是否通过Bindings)。表视图从此对象获取模型对象以将它们提供给单元格。这个中间对象是一个控制器。

答案 1 :(得分:1)

现在我拥有它!

我只有一个Cell用于ArrayController的内容。

我正在为每行设置其他信息 - (id)init。

有3个对象:内容,状态和日期,每个状态我显示另一个图像(完成,撤消,...)。

非常感谢您的帮助!我正在尝试为每个人完成测试版:)