带有绑定的NSTableView中的NSPopupButton

时间:2013-06-11 10:45:01

标签: objective-c macos cocoa cocoa-bindings nspopupbutton

我希望我们中的许多人都有同样的工作绑定问题,特别是嵌套绑定。

场景:

我有一个Person类,具有namerole属性。角色将来自其他来源。

人员类:

@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和一个弹出按钮。 TableView绑定到ArrayController。

如何将弹出按钮绑定到角色,以便在对象或Person中更新所选值,即我们的模型?

1 个答案:

答案 0 :(得分:2)

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);
    }
}

绑定是这样的:

enter image description here

enter image description here

enter image description here

enter image description here