在Obj-C中一行一行地填充TableView

| 我正在寻找一种从一个文档填充表格视图的方法,即我想加载一个.po文件。 我希望表格视图的每一行从PO文件中加载一行文本。 理想情况下,我想在第一列中有一行,在第二列中有相应的翻译(以清楚地看到内容)。 我对表格视图的工作还不多,所以请原谅我的无知! 我已经完成了研究,但发现苹果文档令人困惑且非常不清楚-并且在网上找不到太多... 在此先感谢您的帮助!     
已邀请:
        bbum是正确的,您不将数据推送到表中,而是将其提供给表并显示它。星期五,我对将文本文件逐行显示进行了快速模拟,因此也许某些代码可以有所帮助。 获取一个与数据源插座相连的表格视图,然后您可以执行以下操作:
// Class variable in your table delegate object
    NSArray* lineList;
    IBOutlet NSTableView* table;

- (NSInteger)numberOfRowsInTableView:(NSTableView *)tableView
{
    return [lineList count];
}


- (id)tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row
{
    return [lineList objectAtIndex:row];
}

// Be sure to use the proper encoding for your text file
// do something like this to load your text file.
- (void) loadData:(NSString*)ourPath
{
    NSError* err = nil;
    NSString* fullFileText = [NSString stringWithContentsOfFile:ourPath encoding:NSMacOSRomanStringEncoding error:&err];
    if (err)
        NSLog(@\"Err: %@, %d\", [err localizedDescription], [err code]);

    if (fullFileText)
    {
        lineList = [[fullFileText componentsSeparatedByString:@\"\\n\"] retain];
        [table reloadData];
    }
}
在您的情况下,您可能想保存一系列字典,对两种文本版本使用不同的键。这样,您可以拥有两列。 NSTableColumn将告诉您在调用tableView:objectValueForTableColumn:时要绘制到的列。您在这里的另一种选择是制作一个自定义单元格,其中包含两个字段,但这对于您要问的内容可能是过大的。 还请注意,您可以添加许多其他可选的委托调用,以更加灵活地显示数据。 另外,对于更动态的复杂任务,我发现绑定更好。如果您不满意它们,它们可能会造成混淆。对于简单的表格,走这条路线通常一样容易。祝好运!     
        您不将数据推送到表视图,而是从您那里提取数据。这可以通过绑定或通过实现表格视图数据来实现(在NS *和UI *平台之间有些不同,但基本相同)。 NSTableView和UITableView文档都有指向示例和编程指南的链接。阅读这些内容,如果仍然不明白,请提出一个具体问题。     

要回复问题请先登录注册