是否没有“简单”的方法将包含具有未知键的NSDictionaries的NSArray绑定到NSTableView?

解决此“常见”问题的最佳方法是什么?

来自c#/ asp.net,这似乎是一个非常痛苦的操作。

编辑:

要弄清楚该应用程序是关于什么的:它是一个简单的queryeditor,它在表视图中显示查询的结果。

我尝试遵循以下示例:http://www.cocoabuilder.com/archive/cocoa/150245-dynamic-columns-in-nstableview.html

我使用一个实现NSTableViewDataSource协议的对象。

当用户发出第一个查询时,结果将正确显示。但是第二个查询显示出一些奇怪的现象:这些列没有被正确删除,而是被添加到现有的列中,而不是全部。

在该方法中,构建表的方式如下:

    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是一个NSMutableArray,具有NSMutableDictionary的记录。

最佳答案

看一下NSArrayController并在Interface Builder中配置列。然后就像1-2-3一样简单;)

从这里开始,继续阅读NSArrayController描述:
http://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/CocoaBindings/Concepts/CntrlContent.html

关于objective-c - 具有未知 key 的NSDictionaries的NSTableView的动态填充,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6396642/

10-12 00:35