2011-03-13 13 views
7

¿Cómo puedo establecer un NSTextView en un NSAttributedString? No deseo utilizar un textConainer e intenté:configurando un NSTextView

[myTextView insertText:myMutableAttributedString]; 

pero no funcionó. No pasó nada ... ni siquiera una advertencia o un error de tiempo de ejecución. Cualquier ayuda sería apreciada.

+0

¿Ha verificado que '' no es myTextField' las negativas? –

+0

Sí, he verificado que myTextView no es nulo. – user657819

Respuesta

3

Debe llamar -setString con una cadena vacía antes de llamar a ese método (de lo contrario vas a insertar texto en un objeto de cadena nula):

[myTextView setString:@""]; 
[myTextView insertText:myMutableAttributedString]; 
+0

No funcionó. Ni siquiera nada informando un problema en la consola. – user657819

14

Textview debe ser editable para insertar.

[myTextView setEditable:YES]; 
[myTextView insertText:myMutableAttributedString]; 
[myTextView setEditable:NO]; 
+0

'insertText:' está en desuso: primero en desuso en macOS 10.11 - Use -insertText: replacementRange: de NSTextInputClient en su lugar. Dado que el método está diseñado para ser utilizado únicamente por el sistema de entrada, el mensaje nunca debe enviarse a una vista de texto desde las aplicaciones. Cualquier modificación de contenido debe realizarse a través de los métodos NSTextStorage o NSText. –

-2

textView se crea mediante programación? si carga el NSTextView desde xib, estará bien.

3

En Swift 2.2:

myTextView.textStorage?.setAttributedString(myMutableAttributedString)

En Objective-C:

[[myTextView textStorage] setAttributedString:myMutableAttributedString];