OSX:使用Tab键在文本字段和按钮之间移动键盘焦点

时间:2015-09-24 21:05:30

标签: objective-c macos cocoa

我正在尝试使用键盘的标签按钮在视图中的文本字段和按钮之间切换。文本字段之间的切换有效,但不会在按钮之间切换。视图如下所示。我没有在网上找到足够的资源继续进行。有谁知道如何解决这个问题?

enter image description here

3 个答案:

答案 0 :(得分:5)

你无法解决这个问题。 事实证明,在系统偏好设置>键盘>快捷方式有一个复选框,您可以在其中更改整个系统的行为:

  • 仅在文本框和列表之间移动键盘焦点
  • 在任何控件之间移动键盘

默认情况下,首先按下复选框。

作为补充。默认情况下,NSWindow会分配一个初始第一响应者,并使用它找到的对象构造一个关键视图循环。您还可以通过调用此方法来更改关键视图循环:setNextKeyView。 例如,

[firstTextBox setNextKeyView:secondTextBox];
[secondTextBox setNextKeyView:secondButton];
[secondButton setNextKeyView:firstButton];
[firstButton setNextKeyView:firstTextBox];

这意味着对于希望通过所有控件实现移动控制焦点的用户,这将起作用。对于那些在设置中禁用此功能的用户,这将无效。

答案 1 :(得分:3)

您可以右键单击文本字段,拖动“nextKeyView”并放下当用户按Tab键时要关注的另一个文本字段。如下图所示:
add tab action for text field

答案 2 :(得分:2)

要添加到@ mjonka的答案,要在控件之间移动焦点取决于用户的键盘快捷键设置。可替代解决方案是在xib文件中选择所需的操作按钮并设置" Key Equivalent"值字段为"输入"键入属性检查器,如下所示。通过设置" Key Equivalent"可以对取消按钮执行相同的操作。值得#34; Esc"键。

enter image description here