设置NSView的NSTextFields的Tab键顺序

时间:2012-04-11 11:25:15

标签: objective-c cocoa nsview nstextfield first-responder

我正在尝试在给定的NSView上设置NSTextFields的Tab键顺序。据我所知,我必须通过将nextKeyView插座设置为下一个NSTextField来连接NSTextFields和InterfaceBuilder。我这样做了 - 并没有效果。当我按Tab键时,在其中一个NSTextFields之后它就会失去焦点,就是这样。无论我多少次按Tab键,其他NSTextField都没有重新获得焦点。

我还读到我需要设置窗口的initialFirstResponder。我不认为我可以在这种特殊情况下这样做,因为我的AppDelegate调用了一个NSView,后者又作为一个具有许多不同按钮的菜单区域,每个按钮调用不同的NSView,这些NSView作为不同视图的子视图加载。因此,AppDelegate无法知道当前加载了哪个NSView。

有没有办法在NSView的基础上设置NSTextFields的Tab键顺序?

由于

2 个答案:

答案 0 :(得分:1)

您必须在窗口中禁用自动重新计算密钥循环。请参阅-[NSWindow setAutorecalculatesKeyViewLoop:]

编辑添加:这也可以在Interface Builder中设置。

答案 1 :(得分:0)

这可能对您的情况有所帮助,但在下一个NSView中处理NSView时,以下内容对我有用。我有两个垂直堆栈的NSTextFields。而不是水平遍历,我需要向下选择一个堆栈然后选择下一个...所以我将两个垂直堆栈中的每一个嵌入到它们自己的框中(在IB中,首先选择您的项目,编辑器>嵌入>框)。工作完美。 如果你不想要一个盒子的样子,你可以清除它的标题并将它的边框类型设置为none:隐形框。