gpt4 book ai didi

objective-c - 如何在 cocoa 中的 nscombobox 中显示数据?

转载 作者:行者123 更新时间:2023-12-03 17:35:33 25 4
gpt4 key购买 nike

我的 mainmenunib 文件中有一个 NSComboBox 。我创建了组合框“cb”的导出,并与我的委托(delegate)建立了连接我还将委托(delegate)和数据源与我的委托(delegate)连接起来。

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

但是当我运行应用程序时,数据不会出现在组合框中。请帮助我,因为我是 cocoa 编程的新手。提前致谢。

最佳答案

从表面上看,您的方法似乎是合理的,尽管使用可变对象作为实例变量通常是不明智的(由于与您的问题完全无关的原因,我们在现阶段不需要讨论)。

有两件事可能会出现问题:

1) 您使用 ARC 吗?如果没有,arr将从你的下面消失,因为-arrayWithObjects返回一个自动释放的对象,而你没有任何东西保留它。如果您使用 ARC(我相信这是 Lion 上新项目的默认设置),则这不适用于您。另外,我预计你会崩溃,而不仅仅是得不到数据。

2) 更有可能的是,您忘记了 -setUsesDataSource:YES,该标志告诉 NSComboBox 是否查看其数据源或使用 @JustinBoo 提供的内部内容方法。我相信这默认为“否”,这会导致您遇到确切的问题。目前我面前没有 Interface Builder,但 IIRC 有一个“使用数据源”复选框,您可以选中该复选框以启用此属性。

关于objective-c - 如何在 cocoa 中的 nscombobox 中显示数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10528957/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com