Domanda

Ho un NSTextView sostenuta da un sistema di scrittura che ho messo insieme me stesso, lungo le linee della sezione "Montaggio del System Text by Hand" nel testo Descrizione generale del sistema nella documentazione di cacao. Esso mostra con successo il contenuto della NSTextStorage sullo schermo.

Ma quando ho tipo in essa, nulla sembra accadere, il testo sullo schermo non cambia. Se seleziono il testo, la forma della selezione suggerisce che il testo è cambiato. Se copio e incollo il testo in TextEdit, posso anche vedere le mie modifiche. E se digito abbastanza, posso farlo un'eccezione:

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

Golly, questo appare come il genere di cosa che ho potuto trascorrere la parte migliore di una giornata di debug. Che cosa sta succedendo qui?

È stato utile?

Soluzione

Assicurati collegato il NSTextStorage al NSLayoutManager in questo modo:

[textStorage addLayoutManager:layoutManager];

Al posto di questo modo:

[layoutManager setTextStorage:textStorage];   //BAD

La documentazione sulla -[NSLayoutManager setTextStorage:] dice che non dovrebbe mai essere chiamato direttamente, solo ignorata. A quanto pare questo è il motivo. Speriamo che si è salvato ore e ore di lavoro inutile!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top