1

私はobj-cとcocoaにかなり慣れていないので、ご容赦ください:

nib の NSArrayController のインスタンスによって提供される単純な -add -remove などのメソッドで期待どおりに動作するココア バインディングを使用して NSTableView をセットアップしました。このコントローラー (したがって、テーブル ビュー) のコンテンツを提供するオブジェクトを配列にプログラムで追加し、それに応じてビューを更新したいと考えています。

現在、新しいオブジェクトを配列に追加するための有効な方法があります (NSLog によって検証されています) が、テーブル ビューを更新する方法がわかりません。

So:バインドされたテーブルビューを更新するにはどうすればよいですか? (つまり、プログラムで配列にオブジェクトを追加した後)。私は基本的に、グルー コードで [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 の 2 つのプロパティを定義するだけです。mainmenu.nib ファイルの NSTableView の 2 つの列は、AppController インスタンスにバインドされた配列コントローラーを介して、これらのプロパティに適切にバインドされています。

補足として/代替として。既存の NSArrayController メソッドに機能を追加するにはどうすればよいでしょうか?

4

1 に答える 1