我对 obj-c 和 cocoa 还很陌生,所以请多多包涵:
我有一个使用可可绑定设置的 NSTableView,它可以通过我的笔尖中的 NSArrayController 实例提供的简单 -add -remove 等方法按预期工作。我想以编程方式将对象添加到为该控制器(以及因此为表视图)提供内容的数组中,然后相应地更新视图。
我目前有一种向数组添加新对象的工作方法(由 NSLog 验证),但我不知道如何更新表视图。
那么:如何更新绑定的表格视图?(即,在我以编程方式将对象添加到我的数组之后)。我基本上是在胶水代码中使用一些视图刷新代码,例如 [view reloadData],但我希望它能够与我现有的绑定一起使用。
或者有没有针对这个问题的 KVC/KVO 相关的解决方案?
代码详细信息:AppController.h
@interface AppController : NSObject
@property NSMutableArray *clientsArray;
-(IBAction)addClientFooFooey:(id)sender;
@end
AppController.m(注意,我也有适当的 init 方法,这里没有显示)
@implementation AppController
...
-(IBAction)addClientFooFooey:(id)sender{
[self.clientsArray addObject:[[Client alloc] initWithFirstName: @"Foo" andLastName:@"Fooey"]];
//Need some code to update NSTableView here
}
@end
Client.h 只是简单地定义了两个属性:firstName 和 lastName。我的 mainmenu.nib 文件中的 NSTableView 的 2 列通过绑定到我的 AppController 实例的数组控制器适当地绑定到这些属性。
在旁注/作为替代。我怎样才能将功能添加到现有的 NSArrayController 方法 -add,例如:-addWithFirstName:andLastName 并且仍然与绑定兼容?