Xcode, OS X:查看一个简单的nsmutableray



相对新手问题。我的app有一个简单的nsnumber的NSMutableArray。(大约一打整数)我希望我的UI有一个显示数字的视图,以便用户知道数组中有什么。我希望视图的内容是当前的,所以我想要绑定到数组(或其内容)。有什么简单的方法吗?

我想我可以弄清楚,如果我改变我的模型,使NSMutableArray包含一个自定义类有一个setter和getter到一个声明的属性(以下卢卡斯的youtube上的NSTableView绑定),但我认为可能有一个更简单的方法,一个允许我使用我的NSNumbers数组。如果我需要重做NSMutableArray,我需要做很多编辑。谢谢…

你可以在你的模型中使用普通的nsnumber(或其他任何东西),而不需要使用自定义的模型类。然而,如果你的模型数据需要任何特殊的格式,你可以创建一个NSValueTransformer子类。

在你的NIB中,你会有一个NSTableView和一个NSArrayController。

将TableView列的Value属性绑定到NSArrayController, controller key = arrangedObjects, Model key Path为空(因为你正在查看NSNumber实例本身,而不是NSNumber的属性)

将NSArrayController的Content Array属性绑定到你的模型(NSNumbers的NSMutableArray)。这可能是视图控制器或应用程序委托上的一个属性。

就是这样。你也可以将按钮连接到NSArrayController上的add:remove:动作,你将能够从数组中添加和删除项目。

同样,当你的NSMutableArray改变时,你需要发送一个KVO通知。例如,假设你的NSMutableArray是通过一个名为"numbers"的属性暴露的:

[self willChangeValueForKey:@"numbers"];
[_numbers addObject:[NSNumber numberWithInt:123]];
[self didChangeValueForKey:@"numbers"];

如果你将"numbers"属性设置为一个新值,你就可以免费获得这些通知:

self.numbers = [NSMutableArray arrayWithObject:foo];

最新更新