【发布时间】:2017-03-23 11:50:36
【问题描述】:
我有一个包含 4 个文本字段 tf1 - tf4 的简单视图。
我想将初始焦点设置在 tf2 上,效果很好。
然后我想要 tf1 获得焦点,然后再次获得 tf2 - 这不起作用,焦点在所有 4 个文本字段中循环。
我试过这样:
override func viewWillAppear()
{ super.viewWillAppear()
tf2.becomeFirstResponder()
tf2.nextKeyView = tf1
tf1.nextKeyView = tf2
}
我的错误在哪里?
【问题讨论】:
-
不要打电话给
becomeFirstResponder。 “使用 NSWindow makeFirstResponder: 方法,而不是这个方法,使一个对象成为第一响应者。永远不要直接调用这个方法。” -
将窗口的
initialFirstResponder设置为tf2。 -
设置 NSWindows firstResponder 的最佳位置是什么? viewWillAppear 也可以吗?如何在视图控制器中获取窗口?
-
谢谢!!
使用:self.view.window!.initialFirstResponder = tf2 它工作正常
标签: swift cocoa focus responder-chain