如何从交换的自定义视图中访问方法/变量

时间:2011-06-23 00:20:07

标签: objective-c cocoa

我创建了一个包含NSSplitView的窗口,在这种情况下,正确的自定义视图具有我在运行时交换的视图。交换的自定义视图包含一个带有数据的NSTableView。我在应用程序的主窗口中有一个搜索框,我希望能够约束表视图的行。

我有代码来执行此操作并且我知道它可以正常工作,但我使用搜索文本框和表视图测试了相同窗口范围的代码。由于文本搜索框现在位于主窗口中,而表视图位于不同的自定义视图中,我不知道如何让文本搜索框从自定义视图的控制器类中调用相关方法,因为我不知道无法再直接访问这些方法了。

我确信这是一个非常初学的问题,但任何帮助都会受到赞赏。感谢。

1 个答案:

答案 0 :(得分:0)

让主窗口控制器将搜索查询或过滤谓词传递给内容视图控制器的属性。

您可以为主窗口控制器提供一个包含当前内容视图控制器的弱引用(assign)属性。实现一个自定义setter,它不仅可以分配给后台实例变量,还可以进行交换。那么,在任何时候进行交换时,你只需说self.currentContentViewController = viewControllerToSwapIn,当需要更改查询/谓词时,将其传递给self.currentContentViewController.searchQuery(已实现searchQuery属性在MainContentViewController类中,使所有实际的内容视图控制器继承自该类。)