在我的cocoa应用程序中我想更改控件的Tab键顺序,以便我可以从文本字段切换到按钮。我确实将文本字段的nextKeyView属性与按钮连接,但它似乎根本没有效果。
我已经为键盘激活了相应的系统设置,因此我现在可以选中所有控件。它工作正常但不是我设置为nextKeyView的顺序。
答案 0 :(得分:2)
您需要将窗口的initialFirstResponder
插座连接到至少1个字段。某些控件(如NSTabView)还有一个initialResponder。因此,如果您在tabview中有任何内容,则还需要连接它们。
总体逻辑是您需要将所有initialresponde连接到至少1个字段
答案 1 :(得分:1)
@sach提供的答案为我解决了这个问题。
我创建了一个新的故事板项目,并添加了3个文本字段。我通过在Interface Builder中将它们与nextKeyView链接在一起来设置自定义顺序,但这在运行时没有任何影响。这是我可以提出来复制你(和我)问题的最简单的测试用例。
要使用@ sach的答案解决问题,请创建一个新的插座并将其连接到其中一个NSTextField
:
@IBOutlet var firstTextField: NSTextField!
在ViewController中,我添加了:
override func viewWillAppear() {
// Must execute this after the window is connected
self.view.window!.initialFirstResponder = nameField
}
重新运行并根据使用nextKeyView链接设置的顺序正确循环文本字段