Objective c NSCOMBOX数据源和重新加载数据

Objective c NSCOMBOX数据源和重新加载数据,objective-c,cocoa,datasource,nscombobox,Objective C,Cocoa,Datasource,Nscombobox,我的应用程序中有一个NSCOMBOX,我为此设置了一个数据源 IBOutlet NSComboBox *comboBox; 我还在程序中的某个点指定: [comboBox reloadData]; 我的想法是,在这次调用之后,只要我记得设置组合框的数据源(我这样做了),我就应该得到对这些方法的调用: 但我没有。这不是组合框的工作方式吗?如果您将组合框与数据源一起使用,并且假设您可以在组合框首次绘制之前设置数据源方法所需的任何结构,那么如果数据随后发生更改,您只需调用reloadData 如

我的应用程序中有一个NSCOMBOX,我为此设置了一个数据源

 IBOutlet NSComboBox *comboBox;
我还在程序中的某个点指定:

[comboBox reloadData];
我的想法是,在这次调用之后,只要我记得设置组合框的数据源(我这样做了),我就应该得到对这些方法的调用:


但我没有。这不是组合框的工作方式吗?

如果您将组合框与数据源一起使用,并且假设您可以在组合框首次绘制之前设置数据源方法所需的任何结构,那么如果数据随后发生更改,您只需调用
reloadData


如果在调用
reloadData
之前或之后根本没有调用数据源方法,请确保将组合框配置为使用数据源。在nib中的组合框下,选择使用数据源,或者在代码中调用
[组合框设置使用数据源:是]

看起来他们可以使用数据源或内部列表进行操作。当您第一次填充组合框时,这些方法是否被调用?我对数据源如何工作的理解是,如果在IB中,我将组合框中的数据源出口链接到我的控制器类,那么为了填充组合框,它应该调用这些数据源方法,但它们从未被调用。我不使用内部列表,只是数据源听起来你好像在说他们根本没有被调用,不过:在调用
重新加载数据之前和之后都没有。(如果您可以在首次绘制组合图之前设置数据源方法所需的任何结构,则无需调用
reloadData
,除非数据发生更改。)在IB的组合框下,是否选择了使用数据源?
- (id)comboBox:(NSComboBox *)aComboBox objectValueForItemAtIndex:(NSInteger)index
- (NSInteger)numberOfItemsInComboBox:(NSComboBox *)aComboBox