如何将 NSMutableArray 绑定到 NSPopUpButton

问题描述 投票:0回答:1

我在视图控制器中定义了一个 NSPopUpButton :

@property (weak) IBOutlet NSPopUpButton*    popUpButton;

这个视图控制器还有一个 NSMutableArray,其中包含一些 NSDictionary 类型的对象,例如:

NSDictionary *obj = @{@"name1": @"something",
                          @"name2": @"something else"};
    [myMutableArray addObject: obj];

我希望我的 NSPopUpButton 能够反映此数组中包含的所有元素的 name1 字段的内容,但我不知道如何使用 Xcode 中的绑定检查器来实现这一点。

如果我在故事板中选择 NSPopUpButton,绑定检查器中将显示以下内容:

Xcode bindings inspector

我应该使用“内容”或“内容值”来实现我想要的吗?(假设这是可能的)。我见过有些人使用 ArrayController,但我想知道是否可以在没有它的情况下进行此操作。

objective-c xcode cocoa nsarray
1个回答
0
投票

您可以通过将

Content
绑定与
myMutableArray
连接 Content Values
 绑定与 
myMutableArray.name1
 来实现此目的。

但是,您可能会遇到另一个问题:向

NSMutableArray

 添加对象不会触发键值通知,因此,如果您在 UI 加载后添加值,这些值将不会显示。

要在修改后解决此问题,您可以将可变数组分配给另一个实例变量,并以可观察的方式将 UI 绑定到该数组:

// modify array self.observedArray=myMutableArray;
    
© www.soinside.com 2019 - 2024. All rights reserved.