3

NSTableView にバインドされた NSArrayController があります。これで、典型的な追加/削除ボタンができました。

アイテムの追加は非常に簡単ですが (メソッドを呼び出し、デフォルト値でオブジェクトを作成して追加します)、コントローラーからオブジェクトを削除する際に問題が発生します。ボタンを ArrayController の削除アクションに接続すると、これを簡単に実行できることがわかりました。しかし、これは私が望むものではありません。処理する追加のコードがあるため、オブジェクトを手動で削除する必要があります。

とにかく、オブジェクトの削除は、私が予想していたよりもはるかに複雑に思えます。すでに試しました:

NSArray *items =  [doToItemsArrayController selectedObjects];
[doToItemsArrayController removeSelectedObjects:items]; 

また

NSIndexSet *iSet = [doToItemsArrayController selectionIndexes];
[doToItemsArrayController removeSelectionIndexes:iSet];

それらのどれも機能していないようです。Objective-C コードを使用して、選択したオブジェクトを NSArrayController から削除するにはどうすればよいですか?

4

3 に答える 3

7

これらの方法のいずれかを使用して、オブジェクトを削除できます。それらは選択から独立しています。

– removeObjectAtArrangedObjectIndex:
– removeObjectsAtArrangedObjectIndexes:
– remove:
– removeObject:
– removeObjects:

選択したオブジェクトをコンテンツ配列から削除する場合は、以下のメソッドを使用して選択したオブジェクトを取得し、上記のメソッドのいずれかにプラグインできます。

– selectionIndex
– selectionIndexes
于 2011-01-01T17:07:25.770 に答える
1

-removeObjects:オブジェクトを選択から削除する代わりに、実際にオブジェクトを削除するために使用できます。

[doToItemsArrayController removeObjects:items];
于 2010-05-30T18:10:10.460 に答える
0

試した方法は、配列からオブジェクトを削除するためではなく、選択からオブジェクトを削除するためのものです。remove:なぜアクション メソッドを呼び出さないのでしょうか。

于 2010-05-30T17:51:15.690 に答える