Вам нужно как-то получить ссылку на NSArrayController. Если вы загружаете NIB самостоятельно, вы можете добавить экземпляр IBOutlet в класс, который установлен как NIB "Владелец файла". Когда вы загружаете перо, в качестве владельца вы указываете экземпляр класса «Владелец файла». Если вы сами не загружаете NIB (то есть он автоматически загружается Cocoa как nib / xib MaineMenu вашего приложения), то создайте экземпляр своего собственного класса в nib и добавьте IBOutlet к этому экземпляру. Вы создаете IBOutlet в своем классе следующим образом:
@interface MyClass : NSObject { //of course your class doesn't have to be a direct descendent of NSObject
IBOutlet NSArrayController *arrayController;
}
@property (retain,nonatomic,readwrite) IBOutlet NSArrayController *arrayController;
...
@end
@implementation
@synthesize arrayController;
- (void)dealloc {
[arrayController release];
[super dealloc];
}
@end
Соедините IBOutlet в вашем классе с NSArrayController (щелкните правой кнопкой мыши по Владельцу файла в первом случае или экземпляру вашего класса во втором случае выше) и перетащите в NSArrayController. Когда вы отпустите кнопку мыши, вы получите всплывающее окно IBOutlets в источнике перетаскивания. Выберите созданный вами IBOutlet (например, «arrayController» в приведенном выше примере).
После загрузки пера (т. Е. После вызова awakeFromNib
в вашем классе) вы можете получить доступ к arrayController через выход:
NSArray *content = [[self arrayController] arrangedObjects];
и теперь вы можете делать что угодно со значениями в массиве.