Cocoa:NextKeyView - Tab顺序

时间:2012-01-09 20:10:08

标签: cocoa

在我的cocoa应用程序中我想更改控件的Tab键顺序,以便我可以从文本字段切换到按钮。我确实将文本字段的nextKeyView属性与按钮连接,但它似乎根本没有效果。

我已经为键盘激活了相应的系统设置,因此我现在可以选中所有控件。它工作正常但不是我设置为nextKeyView的顺序。

2 个答案:

答案 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链接设置的顺序正确循环文本字段