gpt4 book ai didi

cocoa - 了解急救人员的行为

转载 作者:行者123 更新时间:2023-12-03 16:54:38 25 4
gpt4 key购买 nike

从应用程序委托(delegate)中,我创建一个窗口并将其 contentView 设置为从 plist 规范以编程方式生成的 View 。然后我把 window 移到前面。该窗口有一个工具栏,当按下工具栏上的按钮时,它应该显示不同的 contentView。

我发现第一个内容 View 出现时,其最上面的文本字段 subview 已被选为第一响应者,但是将工具栏上的 View (它在窗口上设置 contentView)更改为不同的 View 将不会选择该 View 的任何 View 作为第一响应者的文本字段。

我想要保持一致性,所以理想情况下它要么永远不会自动选择一个控件作为第一响应者,要么总是自动选择一个控件作为第一响应者,但我真的不明白什么进程首先使控件首先是响应者。

有人可以解释一下造成这种情况的原因,以便我可以阻止它或在切换 View 时尝试模拟它吗?

最佳答案

侯赛因·沙比尔的回答是正确的,但遗漏了一些东西。

首先,设置窗口的初始第一响应者,然后将同一 View 设为其第一响应者,这是多余的。第一个点是导致第二个点的原因。

其次,您需要在使窗口可见之前设置窗口的初始第一响应者:

Sets a given view as the one that’s made first responder (also called the key view) the first time the window is placed onscreen.

如果在您设置其初始第一响应者时窗口已经可见,则不会发生任何事情。

在第一次使窗口可见之前,您需要设置初始第一响应者。

执行此操作的最佳位置根本不在代码中,而是在 Nib 中。

Simply drag a connection from the window's initial-first-responder outlet to the view.

那么您将不会拥有这两行代码。

更好的是:

The window has a toolbar, and when the buttons on the toolbar are pressed, it is supposed to display a different contentView.

您考虑过使用 NSTabView 吗?它会自动处理这个问题(每个选项卡 View 项都有自己的初始第一响应者导出)。

关于cocoa - 了解急救人员的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18823467/

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