我希望Mac应用程序的NSToolbar项触发第一个响应者对象的操作。我有一个具有以下情节提要布局的应用程序:
如您所见,窗口的工具栏中有一个按钮(测试操作)。它连接到第一响应者对象的动作功能。该函数本身在TabView的第一个视图控制器中实现。
class ViewController: NSViewController {
@IBAction func testAction(_ sender: Any) {
print("testAction")
}
}
但是操作永远不会触发。如果我将相同的动作放在TabViewController中,它会被触发。
如果我将TabViewController的nextRespodner
属性设置为ViewController,则无济于事:
class TabViewController: NSTabViewController {
override func viewDidLoad() {
super.viewDidLoad()
nextResponder = children.first // Does not help
}
}
以某种方式,响应者链无法按我期望的那样工作。有人对此有解决方案吗?这是该问题的示例项目:https://github.com/Iomegan/ResponderChainStoryboard
答案 0 :(得分:1)
将此添加到ViewController
:
override func viewDidAppear() {
super.viewDidAppear()
view.window?.makeFirstResponder(self)
}