🤖

WebView内でCommand+aなどが効かない

2021/12/29に公開

素のWebViewを使うと、テキストフィールド内でのCommand+aなどが効かないらしい。

なので、WebViewを継承して、Command+aなどをハンドリングできるようにしたクラスを利用する。

import Cocoa
import WebKit

class MyWebView: WebView {
  override func performKeyEquivalent(theEvent: NSEvent) -> Bool {
    if let string = theEvent.characters {
      switch string {
      case "a":
        selectAll(self)
      case "c":
        copy(self)
      case "v":
        paste(self)
      case "x":
        cut(self)
      default:
        return super.performKeyEquivalent(theEvent)
      }
      
      return true
    }
    return super.performKeyEquivalent(theEvent)
  }
}

Discussion