2013-06-11 5 views
-1

Я надеюсь, что у многих из нас есть такая же проблема привязки к работе, особенно вложенная привязка.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 и ниспадающее меню. TableView привязан к ArrayController.

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

+0

Если вы используете таблицу на основе представления, у I (и других) возникли проблемы с привязкой к кнопке NSPopup в Tableview [показано здесь] (http://stackoverflow.com/questions/10768492/how-to-populate- nspopupbutton-from-coredata-in-view-based-nstableview), также я нашел это [ссылка] (http://stackoverflow.com/questions/7937280/whats-the-difference-between-content-values-and-content -объекты) очень полезно. – Cory

ответ

2

AppDelegate.m:

@implementation AppDelegate 

- (id)init 
{ 
    self = [super init]; 
    if (self) { 
     [email protected][@"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"]; 

     [email protected][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

Смежные вопросы