如何为NSArrayController子类实现init方法

时间:2012-07-17 14:32:12

标签: objective-c cocoa

我创建了一个类:MyArrayController,它是NSArrayController的子类,并将其绑定到表中。

我需要将person对象传递给MyArrayController对象,就像使用方法一样:

-initWithPerson:(Person *)person; 

但是因为MyArrayController是自动创建的(因为我没有显式地分配它,我认为它是由Cocoa自动创建的),我无法获取MyArrayController的对象或显式初始化它。

如何将人物对象设置为MyArrayController?

1 个答案:

答案 0 :(得分:1)

执行此操作的典型方法是不使用NSArrayController子类。根据您的描述,您不会尝试更改NSArrayController的行为,而只是尝试指定其内容。执行此操作的方法是在您的nib文件中放置NSArrayController并将其绑定到您的表。将IBOutlet添加到与NSWindowController绑定的NSViewControllerNSArrayController。使用要在表格中显示的内容创建并预填充NSArray。然后,在awakeFromNibwindowDidLoad方法中,您调用setContent:NSArrayController的内容数组设置为您创建的NSArray。大概喜欢:

    IBOutlet NSArrayController *myArrayController;

    NSArray *contentArray = [NSArray arrayWithObject:person];
    [myArrayController setContent:contentArray];