hek*_*ran 5 cocoa core-data objective-c cocoa-bindings
我有一个使用Core Data和绑定的应用程序.我希望有一个NSSearchField可以搜索绑定到NSTableView的NSArrayController.阵列控制器包含具有"名称"字段的Core Data对象.我已经像这样设置了NSSearchField:
Bind To: the array controller
Controller Key: filterPredicate
Predicate Format: name contains[c] $value
Run Code Online (Sandbox Code Playgroud)
这有效.我想扩展它,以便它可以搜索与数组控制器中的对象相关的对象的字段.数组控制器中的每个对象与另一种称为"tag"的对象具有to-many关系,该对象具有名为"name"的字段.我尝试了以下方法:
Bind To: the array controller
Controller Key: filterPredicate
Model Key Path: tags
Predicate Format: name contains[c] $value
Run Code Online (Sandbox Code Playgroud)
然而,这不起作用.当文本输入NSSearchField时,NSTableView中没有任何事情发生.这有什么问题?
Bar*_*ark 10
绑定到tags模型键路径会尝试将搜索字段谓词绑定到键路径arrayController.filterPredicate.tags.由于数组控制器的filterPredicate属性没有tags属性,因此您可能会获得以无提示方式记录的"未找到密钥"异常.相反,回想一下NSArrayController的filterPredicate应用于数组的成员,您希望绑定设置如下:
Bind To: <array controller>
Controller Key: filterPredicate
Predicate Format: ANY self.tags contains[c] $value
Run Code Online (Sandbox Code Playgroud)
self.tags可以写成公正的tags,但我认为这更清楚了标签是谓词所应用的对象的属性.
| 归档时间: |
|
| 查看次数: |
7998 次 |
| 最近记录: |