「Person」タイプと「PreparesContent」タイプのCore-Data-Entitiesを含むモード「Entity」で構成されたNSArrayControllerがあります。他のすべてのプロパティはデフォルトです。予想どおり、このarraycontrollerは、(ボタンクリックで)新しいPerson-entitiesを作成すると、そのarrangedObjectsを更新します。
-(IBAction)addEntity:(id)sender{
Person* new = [NSEntityDescription insertNewObjectForEntityForName:@"Person"
inManagedObjectContext:[self managedObjectContext]];
new.text = @"text";
new.date = [NSDate date];
}
ビューベースのNSTableViewのコンテンツをこのarrayControllerの「arrangedObjects」プロパティにバインドして、Personsを表示しました。1つの列に、TableCellViewの「objectValue.text」プロパティにバインドされた編集可能な(ただしデフォルトの)NSTextFieldがあります。
テーブル内の「text」プロパティを編集して別の人を追加すると(テーブルセルがまだ編集モードになっている間に)、テーブルはフォーカスを失い、編集は終了し、新しい人がテーブルに表示されます。すべてがうまく見えます。
ただし、別の人を追加したい場合、arrayControllerはarrangedObjects-propertyを更新しません(arrayControllerのsetContent:が呼び出されなくなったことがわかりました)。
これは意図された動作ですか?