【发布时间】:2016-10-17 06:41:19
【问题描述】:
我有一个位于菜单栏中的应用程序,当您单击该按钮时,它会显示一个 NSPopover。
一切正常,但我希望 NSSearchField 成为第一响应者,这样用户就可以直接在框中键入。
但是,如果尚未选择该应用,它将无法运行。尽管搜索框看起来是活动的,但键盘输入会转到上一个打开的应用程序,因为从技术上讲,它仍然是活动窗口。
我已经看到一些关于此类事情的问题,但它们都需要像 makekeyandorder 这样的 objc 方法,或者只是不适用于 NSPopover 的东西。
所以我的问题是 - 有没有办法在按下按钮时强制应用程序成为活动应用程序?
我有一个疯狂的猜测并尝试了NSApplication().sharedApplication().becomeFirstResponder(),但没有运气。
如果还有其他方法可以做到这一点,我完全错过了,那么请告诉我!
【问题讨论】:
-
您好,可以添加截图吗?
-
更好的是,这里有一个视频 - f.cl.ly/items/3L152r3F442G2L1P0y3w/Qwiki%20Bug.mov 正如你所看到的,当我第一次单击菜单按钮时,该应用程序之前没有处于活动状态,因此该字段不会成为第一响应者。但是当我点击弹出框后,当我关闭并打开它时,搜索字段可以成为第一响应者。
-
我知道这是个愚蠢的问题。
-
@ChristopherHannah 根本不是一个愚蠢的问题。
标签: swift macos nsmenuitem nspopover