gpt4 book ai didi

swift - 创建类似 1Password 的 macOS 菜单栏应用程序

转载 作者:搜寻专家 更新时间:2023-10-30 23:13:50 24 4
gpt4 key购买 nike

我正在尝试创建一个 macOS 菜单栏应用程序,它将文本字段作为第一项。文本字段将用作搜索栏,用于过滤将显示在其下方的其他项目。

它看起来应该与 1password 非常相似:

1password

这是我设法做到的:

mine

我通过创建一个包含三个项目的状态菜单并为菜单中的第一个项目创建自定义 View 来实现这一点。

但是,这种方法似乎并没有解决我的问题。在搜索字段中按 cmd + A 时,焦点会跳转到菜单中的下一项。这是 NSMenu 的默认行为。

所以,我的问题是:这是创建类 1Password 应用程序的正确方法还是有更好的方法?

最佳答案

基本上这个方法是正确的。

但是您必须明确地捕获编辑键事件。子类 NSTextField 并覆盖 performKeyEquivalent

class AXCVTextField: NSTextField {

override func performKeyEquivalent(with event: NSEvent) -> Bool {
if event.modifierFlags.contains(.command),
let key = event.charactersIgnoringModifiers {
var action : String?
switch key {
case "x": action = "cut:"
case "c": action = "copy:"
case "v": action = "paste:"
case "a": action = "selectAll:"
default:
break
}
if let action = action {
return NSApp.sendAction(Selector(action), to:self.window!.firstResponder, from:self)
}
}
return super.performKeyEquivalent(with: event)
}
}

关于swift - 创建类似 1Password 的 macOS 菜单栏应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46858210/

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