在我的 MacOS 应用程序NSSearchField中,工具栏中有一个。我想让用户通过按下来集中注意力CMD+F(与许多 Apple 应用程序中使用的行为相同)。我创建了一个NSMenuItem具有等效键的CMD+F- 它调用以下函数,该函数应该是NSSearchField第一个响应者。
@IBAction func focusFilter(_ sender: NSMenuItem) {
self.view.window?.toolbar?.items.first(where: { (item) -> Bool in
return item.itemIdentifier.rawValue == "Search"
})?.view?.becomeFirstResponder()
}
按下CMD+F时,它似乎在NSSearchField很短的时间内成为第一响应者(标题开始向左移动),但在焦点环出现之前它失去焦点(NSSearchField不拒绝第一响应者)。
我也尝试使用NSToolbarItem's menuFormRepresentation.view,结果相同。
我怎样才能NSToolbarItem成为第一响应者?任何帮助表示赞赏!