gpt4 book ai didi

objective-c - 如何将 NSArrayController 的内容集绑定(bind)到多个 NSArrayController 选择?

转载 作者:行者123 更新时间:2023-12-03 16:44:02 36 4
gpt4 key购买 nike

我是 Objective-C 的新手,到目前为止我很喜欢它。然而,我似乎在兜圈子。我试图在不编写代码的情况下做尽可能多的事情。是否可以有效地将一个 NSArrayController 的内容集绑定(bind)到其他两个 NSArrayController 的选择。

例如,我想要所选用户 (NSArrayController) 与所选卖家 (NSArrayController) 的所有交易 (NSArrayController)。然后,当我添加新交易时,它会链接到选定的用户和卖家。

最好的方法是什么,这样当我在绑定(bind)到用户 Controller 的 NSTableView 中单击新用户时,绑定(bind)到事务 Controller 的 NSTableView 中的事务会相应更改,但仍然保留与在中选择的卖家相关的事务NSTableView 绑定(bind)到 Seller Controller (反之亦然)?

我可能只需要改变我的观点,因为我习惯了生活在一个没有约束力的世界。

感谢任何帮助。

最佳答案

您可以定期在 IB 中配置“TransactionsForUserAndSeller”NSArrayController,其 contentSet 绑定(bind)到 userArrayController.selection.transactions,然后使用其绑定(bind)到 sellerArrayController.selection 的 filterPredicate 以及返回 NSPredicate 的值转换器来过滤结果。

该值转换器的实现可能如下所示:

+(Class)transformedValueClass { return [NSPredicate class]; }

+(BOOL)allowsReverseTransformation { return NO; }

-(id)transformedValue:(id)value {

if (value == nil) return nil;

return [NSPredicate predicateWithFormat:
[NSString stringWithFormat:@"seller == %@", value]];
}

这将正确显示子集,但您需要编写自己的添加方法来手动处理关系,通过卖家数组 Controller 的导出获取当前选择。

关于objective-c - 如何将 NSArrayController 的内容集绑定(bind)到多个 NSArrayController 选择?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6498626/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com