Заполнение NSComboBox данными, сгенерированными в массиве чужих классов
После моего последнего вопроса о доступе к массиву из другого класса я столкнулся с новой проблемой, от которой у меня болит три дня. Каждый раз, когда я думаю, что у меня есть правильный подход к решению, я терплю неудачу.
Ну... у меня пока нет большого опыта в программировании какао. Но, возможно, вы сможете дать мне недостающий намек.
Позвольте мне показать вам, какой подход я выбрал:
1) объявление массива в классе PortConnection.h/.m
@interface PortConnection : NSObject {
@private
NSMutableArray *baudArray;
}
@property (nonatomic, retain) NSMutableArray *baudArray;
и синтезировать в.m
@implementation PortConnection
@synthesize baudArray;
Затем я решил реализовать метод во ViewController, который должен отвечать за заполнение массива данными, которые мне нужны для отображения. Имя класса "PortTableViewController.h"
#import "PortConnection.h"
@interface PortTableViewController : NSObject <NSTableViewDataSource, NSComboBoxDataSource> {
@private
IBOutlet NSComboBox *baudSelection;
PortConnection *portConnection;
}
@property (assign) IBOutlet NSTableView *portTableView;
- (IBAction)fillBaudSelection:(id)sender;
@end
и реализация моего метода "fillBaudSelection".
- (IBAction)fillBaudSelection:(id)sender {
int baudCount = [portConnection.baudArray count];
int i;
for (i = 0; i <= baudCount; i++){
[baudSelection addItemWithObjectValue:[portConnection.baudArray objectAtIndex:i]];
}
}
Кроме того, я реализовал методы делегата для выпадающего списка.
- (id)comboBox:(NSComboBox *)aComboBox objectValueForItemAtIndex:(NSInteger)index{
return [portConnection.baudArray objectAtIndex:index];
}
- (NSInteger)numberOfItemsInComboBox:(NSComboBox *)aComboBox{
return [portConnection.baudArray count];
}
Мои вопросы:
1) Нужно ли вообще использовать методы делегата для поля со списком? 2) Combobox не заполнен данными вообще, хотя массив заполнен данными 3) Я думаю, что сложно?
Большое спасибо за каждый подсказку, которую я получаю от вас!
С наилучшими пожеланиями Себастьян
1 ответ
Вы уверены, что правильно подключили комбинированный список? убедитесь, что делегат и источник данных установлены в любой класс, в котором реализованы методы.