我正在尝试有两个NSPopupButton相互链接,并且在“子”按钮上的绑定有问题。
我有三种核心数据实体类型:Order、Client和Station。Station -> Client是多对1的,因此Client有多个Station,但Station只能指向一个客户端。
Order有一个Station附加到它,所以我创建了所有的绑定,如下所示。我可以正确地从第一个下拉列表中选择任何客户端,但是这些站点下拉列表只显示当前选定的站点。我没有看到所有可用的站点,如果我更改了客户端,我就看不到一个新的站点列表可供选择。
顺序控制器
绑定到视图控制器中的NSObjectController实体属性的order。
客户端阵列控制器
只需绑定到视图控制器的managedObjectContext以获取所有客户端。
站阵列控制器


Client NSPopupButton



站NSPopupButton



发布于 2016-06-03 16:15:39
客户端弹出按钮的选定值用于筛选站点,它不应该更改订单站点的客户端。将客户端弹出按钮的选定索引(而不是选定的对象)绑定到Controller,Controller键selectionIndex,无模型密钥路径。
将站点弹出按钮的选定对象绑定到Order对象控制器、Controller键selection、模型密钥路径station。
当用户选择客户端时,所选择的站点仍然是订单的站点。如果此站点有不同的客户端,则“站”弹出按钮不会自动选择另一个站点。您可以在“客户端”弹出按钮的操作中修复此问题。例如:
- (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;
}
}https://stackoverflow.com/questions/37598285
复制相似问题