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))
としてやることで、末尾に文字列を追加することができた。