-1

私たちの多くが、特にネストされたバインドなど、同じバインドの問題を抱えていることを願っています。

シナリオ :

プロパティを持つクラス 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、つまりモデルで更新されるようにする方法は?

4

1 に答える 1

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

バインディングは次のようになります。

ここに画像の説明を入力

ここに画像の説明を入力

ここに画像の説明を入力

ここに画像の説明を入力

于 2013-06-11T10:45:01.293 に答える