将菜单项连接到第一个响应者和多个视图控制器

时间:2017-08-22 15:03:46

标签: swift xcode first-responder nsviewcontroller

我有一个带有容器视图的主视图控制器。我能够在主视图控制器中创建一个IBAction,并成功地将菜单项连接到第一个响应者中的该操作。但是,当将不同的菜单项连接到容器视图控制器操作时,菜单项将保持灰色。

enter image description here

在主视图控制器中:

@IBAction func outerMenuTest(_ sender: Any) {
    print("outerMenuTest")
}

在容器视图控制器中:

@IBAction func containerMenuTest(_ sender: Any) {
    print("containerMenuTest")
}

如何将菜单项同时连接到容器视图控制器中的视图控制器?我需要启用两个菜单项。

1 个答案:

答案 0 :(得分:0)

将菜单项连接到应用程序委托以外的任何其他方法的最简单方法是在故事板中使用First Responder。在建立连接之前,您需要创建IBAction是适当的类。您可能还需要清理和/或构建项目以强制Xcode为所有IBAction索引。

提供Xcode表现并且操作在类中Xcode看作是潜在的第一响应者,当您控制从菜单项拖动到左侧轮廓中的First Responder时,它将显示在选项列表中画布:

enter image description here

First Responder是整个响应者链的代理。当某些东西指向它时,系统将从第一个响应者开始,并在响应者链中向上运行,直到找到响应指定选择器的响应者。只要您的容器视图位于响应程序链中,它就会收到消息。