4

NSTextField と同じように、 NSTextView で編集終了アクションを検出するにはどうすればよいですか? アクションとして、またはそのデリゲートとして見ることができません。

4

1 に答える 1

15

などの通知に登録できますNSTextDidEndEditingNotification

デリゲートパターンを使用する場合は、NSTextDelegateプロトコルを確認する必要があります。ここにドキュメントがあります。編集終了時に送信されるメソッドはですtextDidEndEditing:

NSTextViewはのサブクラスであるため、そのクラスのドキュメントNSTextも確認することをお勧めします。

NSTextViewNSTextViewDelegate変更に関する通知を受け取るために使用できるプロパティがあります。デリゲートメソッドは、たとえばcontrol:textShouldEndEditingから知っているかもしれないのとは異なり、「編集終了」通知を取得するための単なる便利なメソッドです。NSTextField

class SomeViewController: NSViewController, NSTextViewDelegate {

    var textView: NSTextView!

    func loadView() {

        super.loadView()

        textView.delegate = self
    }

    func textDidBeginEditing(notification: NSNotification) {

        guard let editor = notification.object as? NSTextView else { return }

        // ...
    }

    func textDidEndEditing(notification: NSNotification) {

        guard let editor = notification.object as? NSTextView else { return }

        // ...
    }
}
于 2012-09-05T16:16:39.187 に答える