我在视图控制器中定义了一个 NSPopUpButton :
@property (weak) IBOutlet NSPopUpButton* popUpButton;
这个视图控制器还有一个 NSMutableArray,其中包含一些 NSDictionary 类型的对象,例如:
NSDictionary *obj = @{@"name1": @"something",
@"name2": @"something else"};
[myMutableArray addObject: obj];
我希望我的 NSPopUpButton 能够反映此数组中包含的所有元素的 name1 字段的内容,但我不知道如何使用 Xcode 中的绑定检查器来实现这一点。
如果我在故事板中选择 NSPopUpButton,绑定检查器中将显示以下内容:
我应该使用“内容”或“内容值”来实现我想要的吗?(假设这是可能的)。我见过有些人使用 ArrayController,但我想知道是否可以在没有它的情况下进行此操作。
您可以通过将
Content
绑定与 myMutableArray
连接 Content Values
绑定与
myMutableArray.name1
来实现此目的。但是,您可能会遇到另一个问题:向
NSMutableArray
添加对象不会触发键值通知,因此,如果您在 UI 加载后添加值,这些值将不会显示。要在修改后解决此问题,您可以将可变数组分配给另一个实例变量,并以可观察的方式将 UI 绑定到该数组:
// modify array
self.observedArray=myMutableArray;