Cocoa将搜索字段绑定到另一个nib中的tableview

时间:2014-03-08 15:58:28

标签: objective-c cocoa nstableview cocoa-bindings nsarraycontroller

我的用户界面看起来非常像iTunes。出于封装的目的,顶部区域和主表视图位于具有单独nib的单独类中。我想将搜索字段从顶视图控制器绑定到底视图控制器中的tableview。我已经安排好了,所以有两个属性可以在两个类中存储NSArrayController。数组控制器是一个字典数组,字典有一个“search_keywords”键,我想用它来过滤tableview。

是否可以在Interface Builder中设置搜索内容,即使它位于单独的nib中?我无法弄清楚要放在各种盒子里的东西。

如果IB无法实现,我认为它可以在代码中使用,因为有一个视图控制器可以引用两个子视图控制器,我可以通过属性获取搜索字段,表视图和数组控制器对象在这两个班上。

如何设置?如果可能的话,IB将是最好的。

2 个答案:

答案 0 :(得分:0)

我所做的是使用顶视图控制器中的NSSearchField作为虚拟/占位符。我在tableview的nib中创建了“真正的”搜索字段,并按正常方式连接所有绑定的东西。然后在主视图控制器中,我从tableview的nib中取出搜索字段,并使用replaceSubview替换虚拟搜索字段:with:

现在我可以继续使用IB来修改绑定,并且它在nib中的含义并不重要,因为它在运行时在视图层次结构中正确放置。

答案 1 :(得分:-1)

在您的概念中,您无法以所需的方式绑定IB中的搜索字段。

喜欢它 1.在searchField中的Text的TopClass中创建一个访问器方法(accessorMethodForTextInSearchField或您要使用的名称) 2.在MainClass中导入TopClass.h 3.在MainClass中你可以使用    NSString * searchString = [NSString stringWithString:[TopClass accessorMethodForTextInSearchField]]; 4.现在在数组中搜索searchString