0

Cocoaドキュメントのテキストシステムの概要の「手作業によるテキストシステムの組み立て」セクションに沿って、自分で作成したテキストシステムに裏打ちされたNSTextViewがあります。NSTextStorageの内容が画面に正常に表示されます。

しかし、入力しても何も起こらないようです。画面上のテキストは変わりません。テキストを選択すると、選択範囲の形からテキストが変更されたことがわかります。テキストをコピーしてテキストエディットに貼り付けると、編集内容も表示されます。そして、十分に入力すると、例外をスローすることができます。

NSRunStorage, _NSBlockNumberForIndex(): index (5897) beyond array bounds (5881)

ゴリー、これは私が一日の大部分をデバッグに費やすことができるようなもののように見えます。何が起きてる?

4

1 に答える 1

1

次のようにNSTextStorageをNSLayoutManagerに接続したことを確認してください。

[textStorage addLayoutManager:layoutManager];

このような代わりに:

[layoutManager setTextStorage:textStorage];   //BAD

のドキュメントに-[NSLayoutManager setTextStorage:]は、直接呼び出すことはできず、オーバーライドするだけでよいと記載されています。どうやらこれが理由です。うまくいけば、私はあなたに何時間も無駄な仕事を節約しました!

于 2010-11-16T02:43:04.447 に答える