NSPopupButton в NSTableView с привязкой

Я надеюсь, что у многих из нас есть такая же проблема с привязкой к работе, особенно с вложенной привязкой.

Сценарий:

У меня есть класс Person со свойствами name и role. Роли будут поступать из другого источника.

Класс пользователя:

@interface Person : NSObject
@property (strong) NSString *fullName;
@property (strong) NSString *role;
@end

Класс AppDelegate:

@interface AppDelegate : NSObject <NSApplicationDelegate>

@property (assign) IBOutlet NSWindow *window;

@property (strong) NSArray *persons;
@property (strong) NSArray *roles;
- (IBAction)save:(id)sender;

@end

У меня есть табличное представление и всплывающая кнопка. TableView привязан к ArrayController.

Как привязать popupbutton к ролям, чтобы выбранное значение обновлялось в объектах или Person, т.е. в нашей модели?


person Anoop Vaidya    schedule 11.06.2013    source источник
comment
Если вы используете таблицу на основе представления, у меня (и других) были проблемы с привязкой к кнопке NSPopup в табличном представлении Показано здесь, также я нашел это ссылка очень полезна.   -  person Cory    schedule 18.06.2013


Ответы (1)


AppDelegate.m:

@implementation AppDelegate

- (id)init
{
    self = [super init];
    if (self) {
        self.roles=@[@"Admin",@"SuperUser",@"Clerk",@"Associate",@"Poen"];

        Person *p1=[Person new];
        [p1 setFullName:@"Anoop"];

        Person *p2=[Person new];
        [p2 setFullName:@"Billy"];

        Person *p3=[Person new];
        [p3 setFullName:@"Steven"];

        self.persons=@[p1, p2, p3];
    }
    return self;
}



- (IBAction)save:(id)sender {

    for (Person *p in self.persons) {
        NSLog(@"Name : %@",p.fullName);
        NSLog(@"role : %@",p.role);
    }
}

И привязка происходит так:

введите здесь описание изображения

введите здесь описание изображения

введите здесь описание изображения

введите здесь описание изображения

person Anoop Vaidya    schedule 11.06.2013