3

我正在尝试在给定的 NSView 上设置 NSTextFields 的标签顺序。据我了解,我必须通过将 nextKeyView 插座设置为下一个 NSTextField 来将 NSTextFields 与 InterfaceBuilder 连接起来。我这样做了 - 没有效果。当我按下制表符时,在其中一个 NSTextFields 中它只是失去焦点,就是这样。无论我多久按一次制表符,其他 NSTextField 都没有重新获得焦点。

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

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

谢谢

4

2 回答 2

1

您必须禁用窗口中键循环的自动重新计算。见-[NSWindow setAutorecalculatesKeyViewLoop:]

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

于 2012-04-11T17:40:13.207 回答
0

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

于 2013-01-10T23:23:58.507 回答