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 бутон в рамките на Tableview Показано тук, намерих и това връзка много полезна.   -  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