根据是否选中了复选框,我有一个静态过滤器来打开/关闭NSArrayController。现在我已将复选框值绑定到此:
private dynamic var filterPending: NSNumber! {
willSet {
willChangeValueForKey("filterPredicate")
}
didSet {
didChangeValueForKey("filterPredicate")
}
}
然后我将NSArrayController的过滤器绑定到:
private dynamic var filterPredicate: NSPredicate? {
guard let filter = filterPending?.boolValue where filter == true else { return nil }
return NSPredicate(format: "pending > 0")
}
这似乎运作正常,但感觉我可能会错过一些更简单的方法吗?
答案 0 :(得分:0)
在您的设置中,filterPredicate
的值取决于 filterPending
的值。正如 Gerd K 指出的那样,键值观察 API允许您通过将filterPending
注册为dependent key {来来指定此类关系{1}}:
filterPredicate