fix: SettingsWindow 输入框支持 Cmd+A/C/V/X 快捷键
This commit is contained in:
parent
2a2582ea5e
commit
7dc0d8ce26
@ -40,6 +40,35 @@ final class SettingsWindow: NSWindow {
|
|||||||
center()
|
center()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// MARK: - 快捷键支持(LSUIElement 无 Edit 菜单,需手动转发)
|
||||||
|
|
||||||
|
override func performKeyEquivalent(with event: NSEvent) -> Bool {
|
||||||
|
// 仅拦截 Cmd 组合键
|
||||||
|
guard event.modifierFlags.contains(.command) else {
|
||||||
|
return super.performKeyEquivalent(with: event)
|
||||||
|
}
|
||||||
|
|
||||||
|
let selector: Selector?
|
||||||
|
switch event.charactersIgnoringModifiers?.lowercased() {
|
||||||
|
case "a": selector = #selector(NSText.selectAll(_:))
|
||||||
|
case "c": selector = Selector(("copy:"))
|
||||||
|
case "v": selector = Selector(("paste:"))
|
||||||
|
case "x": selector = Selector(("cut:"))
|
||||||
|
default: selector = nil
|
||||||
|
}
|
||||||
|
|
||||||
|
guard let sel = selector else {
|
||||||
|
return super.performKeyEquivalent(with: event)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 发送到第一响应者链
|
||||||
|
if NSApp.sendAction(sel, to: nil, from: self) {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
return super.performKeyEquivalent(with: event)
|
||||||
|
}
|
||||||
|
|
||||||
private func buildUI() {
|
private func buildUI() {
|
||||||
guard let content = contentView else { return }
|
guard let content = contentView else { return }
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user