NSTextViewのメソッドが文字入力中に呼び出される順番
次のような感じで、文字入力すると呼び出される。ただし色々注釈つき。
keyDown:
textView:doCommandBySelector:
delegateメソッドだけど、Enterキーを押したときなんかに呼び出される。insertText:
ここで実際に文字列を入力する。ただし、IMでの変換中には確定後になってこれ以降が呼び出される。didChangeText:
,textDidChange:
おしまい
ここのように、keyDown:
を書き直すより、insertText:
を書き直したほうが効率が良いような気がする。
で、一度に複数の改行がペースト以外でinsertText:
に渡されるような場合が思いつかないので、
if ( [insertedText isEqualToString: @"\r"] {
[super insertText: @"\n"];
} else {
[super insertText: insertedText];
}
で十分かな。