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()
|
||||
}
|
||||
|
||||
// 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() {
|
||||
guard let content = contentView else { return }
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user