したがって、これはずっと前に解決した可能性がありますが、他の誰かがこの質問に出くわした場合に備えて...
を介して配列にデータを入力していますが、Controller.m クラスにインスタンスがないため、 をNSMutableArray
介して配列にデータを入力する方法がわかりません。NSArrayController
この問題を解決する方法を教えてください。
あなたが何かをしていた可能性があります
[myData addObject:someObject];
ただし、KVC に準拠していないため、インスタンスNSArrayController
に対するこの変更は認識されません。インスタンスが変更されたことを監視しているすべてのオブジェクトに通知する必要があります。これを行うには、少なくとも 2 つの方法があります。インスタンス プロパティの名前が「myData」であると仮定すると、次のようなことができます。NSMutableArray
addObject
NSMutableArray
NSMutableArray
[self.willChangeValueForKey:@"myData"];
[myData addObject:someObject];
[self.didChangeValueForKey:@"myData"];
また
NSMutableArray *bindingsCompliantArray = [self mutableArrayValueForKey:@"myData"];
[bindingsCompliantArray addObject:someObject];
別の SO 回答(リンク) には、 mutableArrayValueForKey が実際に何を行うかについての良い説明がありますが、それを理解するために、キー値コーディングとキー値観察に関する Apple 開発者ドキュメントを読むことをお勧めします。
NSController インスタンスを mainmenu.nib トレイにドラッグしました。Controller.h ファイルで IBOutLet NSArrayController を宣言し、それをトレイの NSArrayController インスタンスに接続する必要がありますか?
nib ファイルにインスタンスが必要ですNSArrayController
が、ここで説明した状況ではインターフェイスに IBOutlet は必要ありません。(私の例では myData )NSArrayController
のキーにバインドする必要があり、テーブルの列が既に正しくバインドされているようです。NSMutableArray