11

テキストビューアアプリを作成しています。現在、非常に頻繁で正確なライン処理能力が必要なので、クラスをサブクラス化したいと考えていNSTextStorageます。しかし、新しいテキスト ストレージを に設定する方法が見つかりませんでしたNSTextView。私が見つけた唯一の方法は

-[NSLayoutManager replaceTextStorage:]

方法。しかし、これが私が探していたものかどうかはわかりません。NSTextView ではなく、リンクされた NSLayoutManagers のテキスト ストレージを置き換えるだけのように見えるためです。

NSTextView をサブクラス化して-textStorageメソッドをオーバーライドすることも考えましたが、クラスがサブクラス化するように設計されていないと、未定義の結果になります。

NSTextView でカスタム NSTextStorage を使用しようとした人はいますか? これどうやってするの?それとも、これは設計上禁止されていますか?

4

1 に答える 1

12

NSTextView のストレージを変更するには、次のようにします。

NSTextStorage *newStorage = [[NSTextStorage alloc] initWithString: @"test"];

[aTextView.layoutManager replaceTextStorage: newStorage];

NSTextStorage は NSMutableAttributedString のサブクラスであるため、すべて同じメソッドで操作できます。

于 2013-04-11T18:39:57.303 に答える