![](/img/trans.png)
[英]How can I import data from an xml file and parse them in a NSCombobox using cocoa?
[英]How to display data in a nscombobox in cocoa?
我的mainmenunib文件中有一個NSComboBox
。 我已經創建了組合框“ cb ”的出口,並將其與我的代理建立了連接,並且還將委托和數據源與我的委托進行了連接。
-(void)applicationDidFinishLaunching:(NSNotification *)aNotification
{ arr=[NSMutableArray arrayWithObjects:@"a",@"b",@"c",@"d",@"e",@"f", nil];
[cb reloadData];
}
-(NSInteger)numberOfItemsInComboBox:(NSComboBox *)aComboBox{
return arr.count;
}
-(id)comboBox:(NSComboBox *)aComboBox objectValueForItemAtIndex:(NSInteger)loc{
return [arr objectAtIndex:loc];
}
但是,當我運行應用程序數據時,組合框中沒有數據。 請幫助我,因為我是可可編程的新手。 提前致謝。
從表面上看,您的方法似乎是合理的,盡管使用可變對象作為實例變量通常是不明智的(由於與您的問題完全無關的原因,在此階段我們無需贅述)。
有兩件事可能會跳出來:
1)您正在使用ARC嗎? 如果不是這樣, arr
將從您的-arrayWithObjects
下消失,因為-arrayWithObjects
返回一個自動釋放的對象,您什么也沒有保留。 如果您使用的是ARC(我相信Lion上新項目的默認設置),則這不適用於您。 另外,我希望您會崩潰,而不僅僅是獲取數據。
2)您更有可能忘記了-setUsesDataSource:YES
,它是告訴NSComboBox是查看其數據源還是使用@JustinBoo提供的內部內容方法的標志。 我相信這默認為NO,這將導致您的確切問題。 我目前沒有界面生成器,但是IIRC上有一個“使用數據源”復選框,您可以檢查該復選框以啟用此屬性。
您可以使用-addItemWithObjectValue
將對象添加到NSComboBox
如下所示:
arr = [NSMutableArray arrayWithObjects:@"a",@"b",@"c",@"d",@"e",@"f", nil];
for (int i = 0; i < [arr count]; ++i)
{
[cb addItemWithObjectValue:[arr objectAtIndex:i]];
}
您可以參閱NSComboBox參考以獲取更多信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.