未知のキーを持つNSDictionaryを含むNSArrayをNSTableViewにバインドする "単純な"方法はありませんか?不明なキーを持つNSDictionariesを使用したNSTableViewの動的集計
この「共通の」問題を解決する最良の方法は何ですか?
C#/ asp.netから来ているのは本当に苦しい操作のようです。
編集:テーブルビューでのクエリの結果を表示するシンプルなqueryeditor:
アプリが何であるかについて明確にします。私はNSTableViewDataSourceプロトコルを実装するオブジェクトを使用http://www.cocoabuilder.com/archive/cocoa/150245-dynamic-columns-in-nstableview.html
:
私はこの例に従うことを試みました。
ユーザーが最初のクエリを発行すると、結果が正しく表示されます。しかし、2番目のクエリは、何か変わったことを示しています。列は正しく削除されず、既存のものに追加されますが、すべてではありません。私はこのようなものを使用するテーブルを作成する方法では、
:
NSArray *columns = [_resultTableView tableColumns];
if(columns && [columns count] > 0)
{
for(int i=0; i < [columns count]; i++)
{
NSTableColumn *col = [columns objectAtIndex:i];
NSLog(@"removing column: %@", [col identifier]);
[_resultTableView removeTableColumn:col];
}
}
NSDictionary *dict = [_resultTableDataSource.data objectAtIndex:0];
NSArray *keys = [[dict keyEnumerator] allObjects];
for(int i=0; i < [keys count]; i++)
{
NSTableColumn *column = [[NSTableColumn alloc] initWithIdentifier:[keys objectAtIndex:i]];
[column setEditable:NO];
[[column headerCell] setStringValue:[keys objectAtIndex:i]];
[_resultTableView addTableColumn:column];
}
[_resultTableView setDataSource:_resultTableDataSource];
[_resultTableView reloadData];
_resultTableDataSource.dataがレコードとしてNSMutableDictionaryのでNSMutableArrayのです。
私が今理解している限り、NSTableViewDataSourceを実装して、自分自身でColumnsを構築する必要があります。 –
私は、そのアプローチは、いかにノー・トゥ・・・・・・・・・・・・然、正しいでしょうか? –