2011-06-12 62 views
0

我正在尋找一種方法來從單個文檔填充表視圖,即我想要加載.po文件。 我希望我的表格視圖的每一行從PO文件中加載一行文本。在Obj-C中逐行填充TableView

理想情況下,我想在第一列有一行,並在第二列有相應的翻譯(以獲得內容的清晰視圖)。

我還沒有太多的表意見,所以請原諒我的無知! 我已經完成了我的研究,但我發現蘋果文檔混淆和非常不清楚 - 並沒有發現太多的在線...

在此先感謝您的幫助!

+0

什麼是您的目標平臺:Mac OS X或iOS? – 2011-06-12 12:11:56

回答

3

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]; 
    } 
} 

在你的情況,你可能會想抱着字典的數組,使用不同的密鑰兩種版本的文字。這樣你可以有兩列。當tableView:objectValueForTableColumn:被調用時,NSTableColumn會告訴你將要繪製哪一列。你在這裏的另一個選擇是製作一個自定義單元格,其中有兩個字段,但這可能是爲你所問的問題矯枉過正。

還要注意,您還可以添加許多其他可選的委託調用,以便更靈活地顯示數據。

此外,對於更動態的複雜任務,我發現綁定更好。如果你對他們不滿意,他們可能會感到困惑。對於簡單的表格來說,走這條路線通常很容易。祝你好運!

+0

slycrel,謝謝你的一段代碼,你太棒了。謝謝你的解釋,這對我來說澄清一點!當我回到家時,我會嘗試使用你的代碼,我一定會通知你的。順便說一下,我的項目中沒有包含libgettext.dylib或somemhing的庫嗎?這是另一件令我困惑的事情,.po文件顯然是GNUGetText格式,所以我必須查看它,並編碼,然後從那裏找出其餘的。謝謝你的幫助! – WeeBey 2011-06-13 05:45:00

+0

我對.po文件不熟悉,所以在這裏解析文件可能需要根據格式進行更改。祝你好運! – slycrel 2011-06-14 22:16:23

+0

slycrel,我正在苦苦掙扎!我無法爲我的生活實現此代碼。不知道我做錯了什麼顯然。有什麼辦法可以爲我提供此代碼的示例項目嗎?我希望能夠保存從我的應用程序編輯的數據,但這一切都讓我感到困惑!我會自己找出解析部分,或者在需要時尋求幫助。提前致謝! – WeeBey 2011-06-17 11:46:01

3

您不會將數據推送到表視圖,它會從您那裏獲取數據。這可以通過綁定或通過實現表視圖數據酸(NS *和UI *平臺之間稍有不同,但大多相同)來完成。

NSTableViewUITableView文檔都有示例和編程指南的鏈接。閱讀這些內容,如果你仍然不明白,請提出具體問題。

+0

您好寶貝,感謝您的回答。如果我仍然不明白,我會再看看你給我的鏈接,然後回來。 – WeeBey 2011-06-12 16:34:16