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