在我的 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
成为第一响应者?任何帮助表示赞赏!