分层 NSPopupButton 绑定
Tiered NSPopupButton binding
我正在尝试让两个 NSPopupButton 相互链接,但 'child' 按钮上的绑定有问题。
我有三个 Core Data 实体类型:Order
、Client
和 Station
。 Station
-> Client
是一个many-to-1,所以一个Client
有多个Station
,但是一个Station
只能指向一个客户端.
Order
附加了一个 Station
,所以我创建了所有绑定,如下所示。我可以从第一个下拉列表中正确选择任何客户端,但随后站下拉列表只显示当前选择的站。我没有看到所有可用的电台,如果我更改客户端,我也没有看到可供选择的新电台列表。
订单控制器
绑定到视图控制器中 order
实体 属性 的 NSObjectController。
客户端阵列控制器
只需绑定到视图控制器的 managedObjectContext 即可获取所有客户端。
站点阵列控制器
客户端 NSPopupButton
Station NSPopupButton
客户端弹出按钮的selected值是用来过滤站的,应该不会改变订单站的客户端。将客户端弹出按钮的选定索引(而不是选定对象)绑定到客户端阵列控制器,控制器键 selectionIndex
,无模型键路径。
将站弹出按钮的选定对象绑定到订单对象控制器、控制器键selection
、模型键路径station
。
当用户select是客户端时,select编辑的站点仍然是订单的站点。如果这个站有不同的客户端,站弹出按钮不会自动 select 另一个站。您可以在客户端弹出按钮的操作中修复此问题。例如:
- (IBAction)clientAction:(id)sender {
NSArray *stations = self.stationArrayController.arrangedObjects;
if (![stations containsObject:order.station]) {
if (stations.count > 0)
self.order.station = stations[0];
else
self.order.station = nil;
}
}
我正在尝试让两个 NSPopupButton 相互链接,但 'child' 按钮上的绑定有问题。
我有三个 Core Data 实体类型:Order
、Client
和 Station
。 Station
-> Client
是一个many-to-1,所以一个Client
有多个Station
,但是一个Station
只能指向一个客户端.
Order
附加了一个 Station
,所以我创建了所有绑定,如下所示。我可以从第一个下拉列表中正确选择任何客户端,但随后站下拉列表只显示当前选择的站。我没有看到所有可用的电台,如果我更改客户端,我也没有看到可供选择的新电台列表。
订单控制器
绑定到视图控制器中 order
实体 属性 的 NSObjectController。
客户端阵列控制器
只需绑定到视图控制器的 managedObjectContext 即可获取所有客户端。
站点阵列控制器
客户端 NSPopupButton
Station NSPopupButton
客户端弹出按钮的selected值是用来过滤站的,应该不会改变订单站的客户端。将客户端弹出按钮的选定索引(而不是选定对象)绑定到客户端阵列控制器,控制器键 selectionIndex
,无模型键路径。
将站弹出按钮的选定对象绑定到订单对象控制器、控制器键selection
、模型键路径station
。
当用户select是客户端时,select编辑的站点仍然是订单的站点。如果这个站有不同的客户端,站弹出按钮不会自动 select 另一个站。您可以在客户端弹出按钮的操作中修复此问题。例如:
- (IBAction)clientAction:(id)sender {
NSArray *stations = self.stationArrayController.arrangedObjects;
if (![stations containsObject:order.station]) {
if (stations.count > 0)
self.order.station = stations[0];
else
self.order.station = nil;
}
}