Mac
WebKit
Cocoa
Swift

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

More than 1 year has passed since last update.

素の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)
  }
}