gpt4 book ai didi

swift - 强制 NSSearchField 在成为第一响应者时开始编辑

转载 作者:行者123 更新时间:2023-11-30 13:52:40 25 4
gpt4 key购买 nike

我在 NSPopover 中有一个 NSSearchField。单击 NSStatusBar 项时将打开此弹出窗口。

在我的 NSPopover View Controller 的 viewWillAppear() 中,我在 NSSearchField 上调用 self.view.window?.makeFirstResponder(searchField) 。我希望在弹出窗口出现时可以编辑此搜索字段。通过准备编辑,我的意思是用户不必在 NSSearchField 内单击即可开始输入。

此时,我的实现并不总是有效。有时,它会起作用,弹出窗口会打开,搜索字段已准备好,光标会闪烁。然而,大多数时候,尤其是当我打开弹出窗口时在不同的应用程序中编辑文本时,必须单击 NSSearchField 才能进行编辑。

我已经对搜索字段进行了子类化并重写了其 becomeFirstResponder() 方法,并且我可以确认它每次都会被调用。

当字段成为第一响应者时,为什么我无法从其他应用程序“窃取”编辑我的搜索字段的权利?这可能吗?

最佳答案

您应该使用 viewDidAppear: 使搜索字段成为第一响应者。

通常,当调用 viewWillAppear: 时, View 尚未位于 View 层次结构中,因此 window 属性为 nil (并且您的可选链接不会调用 makeFirstResponder)。

关于swift - 强制 NSSearchField 在成为第一响应者时开始编辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34060101/

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