NSTextViewの末尾に文字を追加する方法

NSTextViewに文字列を追加しようと調べると、

func insertText(_ insertString: AnyObject)

が見つかる。
だが、このメソッドOS X v10.11 で deprecated となっていて、使うべきではない。

NSTextInputClient

NSTextViewのリファレンスを見ると、NSTextViewはNSTextInputClientプロトコルに適応 (conform) している。

このプロトコルに定義されている、

func insertText(_ aString: AnyObject, replacementRange replacementRange: NSRange)

が代わりに使えそうだ。

ここで

textView.insertText("追加する文字列", replacementRange: NSRange())

としてやると、文字列が追加できる。だが、NSRangeの内容を指定していないため、この場合先頭に文字列が追加される。

NSRangeの実体は以下の定義の構造体である。

typedef struct _NSRange {
      NSUInteger location;
      NSUInteger length;
} NSRange;

そこで、

textView.insertText("追加する文字列", replacementRange: NSMakeRange(-1, 0))

としてやることで、末尾に文字列を追加することができた。