Swift 更改cocoa应用程序中的选项卡顺序(焦点)

Swift 更改cocoa应用程序中的选项卡顺序(焦点),swift,cocoa,focus,responder-chain,Swift,Cocoa,Focus,Responder Chain,我有一个包含4个文本字段tf1-tf4的简单视图 我想将初始焦点设置在tf2上,这样就可以了 然后我想,tf1获得焦点,然后tf2再次-这不起作用,焦点在所有4个文本字段中循环 我试着这样做: override func viewWillAppear() { super.viewWillAppear() tf2.becomeFirstResponder() tf2.nextKeyView = tf1 tf1.nextKeyView = tf2 } 我的错在哪里?谢谢@Willek

我有一个包含4个文本字段tf1-tf4的简单视图

我想将初始焦点设置在tf2上,这样就可以了

然后我想,tf1获得焦点,然后tf2再次-这不起作用,焦点在所有4个文本字段中循环

我试着这样做:

override func viewWillAppear()
{ super.viewWillAppear()
  tf2.becomeFirstResponder()

  tf2.nextKeyView = tf1
  tf1.nextKeyView = tf2
}
我的错在哪里?

谢谢@Willeke:

它适用于以下情况:

override func viewWillAppear()
{ super.viewWillAppear()
  tf2.nextKeyView = tf1
  tf1.nextKeyView = tf2      
  self.view.window!.initialFirstResponder = tf2
}

不要呼叫
成为第一响应者
。“使用NSWindow makeFirstResponder:方法(而不是此方法)将对象设为第一个响应程序。切勿直接调用此方法。”将窗口的
initialFirstResponder
设置为
tf2
。设置NSWindows firstResponder的最佳位置是哪里?”?视图是否也会显示为OK?如何在viewcontroller中获取窗口?谢谢
带有:self.view.window!。initialFirstResponder=tf2工作正常