代码之家  ›  专栏  ›  技术社区  ›  Pablo

如何从app delegate访问NSViewController?

  •  3
  • Pablo  · 技术社区  · 6 年前

    问题是如何访问我的视图控制器( NSViewController )从应用程序代理?

    2 回复  |  直到 6 年前
        1
  •  0
  •   vadian    6 年前

    实际上你不需要控制器的引用。有 First Responder

    • 宣布 IBActions
    • 在Interface Builder中,将菜单项连接到目标对象的第一个响应程序(红色立方体),并选择适当的操作。

    该操作将在实现该操作的响应程序链的第一个对象中执行。

        2
  •  2
  •   Fabian    6 年前

    如果你有 window IBOutlet 你能做到的

    var rootViewController: MyViewController? {
        return window!.contentViewController as? MyViewController
    }
    
    func sendPressed(_ sender: Any?) {
       rootViewController?.sendPressed()
    }
    

    如果你没有 窗口

    NSApplication.shared.orderedWindows.first!