gpt4 book ai didi

Xcode,OS X : viewing a simple NSMutableArray

转载 作者:行者123 更新时间:2023-12-03 17:15:20 27 4
gpt4 key购买 nike

相对新手问题。我的应用程序有一个简单的 NSNumbers NSMutableArray。 (大约十几个整数)我希望我的 UI 有一个显示数字的 View ,以便用户知道数组中有什么。我希望 View 的内容是最新的,所以我想我想要绑定(bind)到数组(或其内容)。有没有简单的方法可以做到这一点?

我想如果我更改模型以便 NSMutableArray 包含一个自定义类,该类具有已声明属性的 setter 和 getter(遵循 Lucas 的 YouTubtorial on NSTableView 绑定(bind)),我想我可以解决这个问题,但我认为可能有一种更简单的方法,允许我使用我的 NSNumbers 数组。如果我必须重做我的 NSMutableArray,我就必须做大量的编辑。谢谢...

最佳答案

您可以在模型中使用普通的旧 NSNumbers(或其他任何内容),无需使用自定义模型类。但是,如果您的模型数据需要 View 的任何特殊格式,您可以创建 NSValueTransformer 子类。

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

将 TableView 列的 Value 属性绑定(bind)到 NSArrayController, Controller key =arrangedObjects,模型键路径为空(因为您正在查看 NSNumber 实例本身,而不是 NSNumber 的属性)。

将 NSArrayController 的 Content Array 属性绑定(bind)到您的模型(NSNumbers 的 NSMutableArray)。这可能是您的 View Controller 或应用程序委托(delegate)上的属性。

就是这样。您还可以将按钮连接到 NSArrayController 上的 add:remove: 操作,这样您就可以在数组中添加和删除项目。

此外,每当 NSMutableArray 发生更改时,您都需要发送 KVO 通知。例如,假设您的 NSMutableArray 通过名为“numbers”的属性公开:

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

如果您将“numbers”属性设置为新值,您将免费获得这些通知:

self.numbers = [NSMutableArray arrayWithObject:foo];

关于Xcode,OS X : viewing a simple NSMutableArray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8526381/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com