【发布时间】:2019-02-13 12:49:49
【问题描述】:
在我的 macOS 应用程序中,我有菜单项,它们也在主 UI 中复制。应用程序由主窗口及其委托和单个视图及其视图控制器组成。在应用程序委托中,我捕获菜单项单击操作,然后我需要将此事件发送到我的视图控制器以采取适当的操作并更新主 UI。
问题是如何从应用代理访问我的视图控制器 (NSViewController)?
【问题讨论】:
-
“在应用程序委托中,我捕获菜单项单击操作,然后我需要将此事件发送到我的视图控制器以便采取适当的操作并更新主 UI。”这听起来不像是一个好的游戏计划。
-
现在我在控制器中捕获菜单项操作,然后通过应用程序委托更新菜单项。听起来更好吗?
-
没有。当您在 AppDelegate 中创建指向视图控制器的指针时,AppDelegate 将仅在应用程序启动时具有该视图控制器的信息。您最好的选择是通过 Interface Builder 设置 First Responders。
-
我就是这样做的 - 将菜单项操作连接到 IB 中的视图控制器。
标签: swift macos appdelegate nsviewcontroller