gpt4 book ai didi

swift - 尝试在 Xcode 中为 OS X App 设置选项卡顺序

转载 作者:行者123 更新时间:2023-11-28 12:42:30 25 4
gpt4 key购买 nike

我正在使用 Xcode 7.3 构建一个 OS X 桌面应用程序,我正在尝试为其中一个表单设置 Tab 键顺序。

我发现有几篇文章解释了 Xcode 4 的类似问题,但没有解决任何问题,https://www.youtube.com/watch?v=SRrE8eqp0dU

我要解决的基本问题是,当用户在一个字段和选项卡中时,我希望它跳转到下面的字段,而不是它旁边的字段,等等。

通过文档查看它提到连接 nextKeyView 以便它知道旁边的选项卡在哪里,所以我使用 Interface Builder 为每个字段连接 nextKeyView 以指向正确的字段但没有成功。

我想我需要设置 initialFirstResponder 但不确定在哪里连接它?

它并没有真正附加到单独的 View ,所以有点丢失。

我在这里发布了我的源代码 https://github.com/johnantoni/osx-tab-order

真的欢迎任何想法和指示吗?

两败俱伤。

enter image description here

最佳答案

我检查了您的项目,非常好,您将其包含在内。它使玩 AppKit 变得更容易。我绝不是 AppKit 方面的专家,坦率地说,我已经很多年没有接触过它了,但经过一些努力,我设法让它工作了。

看起来您所看到的问题是因为(自动)重新计算了 Key View Loop。我不得不用 hack 禁用它,一定有更好的方法,但我找不到。

class MyWindow: NSWindow {
override func recalculateKeyViewLoop() {
// Remove. nextKeyView and makeFirstResponder seemed broken with this
}
}

摆脱重新计算后,您可以将初始响应者设置为:

override func viewWillAppear() {
view.window?.makeFirstResponder(aField)
}

如果您在 Interface Builder 中正确设置了所有 nextKeyView,现在可以使用 Tab 键。

设置也可以通过编程方式完成:

override func viewDidLoad() {
super.viewDidLoad()

aField.nextKeyView = bField
bField.nextKeyView = cField
cField.nextKeyView = dField
dField.nextKeyView = aField
}

在上面的代码中,标识符aFieldbField 等是ViewController 中的outlet。您可以通过控制从字段拖动到 View Controller 并命名它来添加一个。

这不是一个完美的解决方案,但我希望这对您有所帮助。

关于swift - 尝试在 Xcode 中为 OS X App 设置选项卡顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39096382/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com