Estoy usando storyboards para mi interfaz de usuario. Yo estaba utilizando XCode 4.6 y lanzado en iOS 6. Desde entonces he actualizado a iOS 7 con XCode 5 y actualizado el Guión gráfico para trabajar bien con XCode 5. Tengo un problema, sin embargo:

UITextView no quiere fuente de visualización de los cambios en el código. El color del texto de los cambios funcionan bien. Cualquier otra propiedad de los cambios que están bien. De la fuente, no en todos. Yo estaba usando una fuente personalizada, por lo que he comprobado con diferentes fuentes con diferentes tamaños (es decir,systemFontOfSize:), pero que no funcionó. La vista de texto sólo muestra la fuente que se establece en el Guión gráfico. ¿Qué podía faltar aquí? Hay auto-restricciones de diseño que lío con este tipo de cosas? Tuve un par de problemas con restricciones durante la migración, pero como ya he dicho, las fuentes de trabajo bien en iOS 7.

Supongo que es algo en el Guión que me estoy perdiendo, como si yo crear un UIViewController y agregar una vista de texto en el código, funciona bien.

Me gustaría poner algo de código, pero no estoy seguro de que iba a ayudar en todo, en este caso.

  • Este es el más extraño bug en iOS, y es todavía totalmente rota (mediados de 2016).
InformationsquelleAutor Harry | 2013-10-01

11 Comentarios

  1. 114

    Aunque parezca extraño, esto sólo ocurre en el iPhone, el iPad no.

    Si estás configuración de la fuente en código y no quieres que un texto editable ver, que hacer esto:

    textView.editable = YES;
    textView.font = newFont;
    textView.editable = NO;
    • Esto funciona para mí!! 🙂
    • esto no es específico para el iphone, el fix funciona para el ipad air con ios 7.0.6
    • Raro. El proyecto en el que he descubierto este afectaba a iOS 6 para iPhone, pero no de iOS 6 para iPad o iOS 7 nada. Pero es bueno para comprobar que es un propósito general de revisión.
    • Estoy teniendo el mismo problema para UILabel. Tienes alguna idea de cómo superar esto ?
    • No veo que esto de las etiquetas. Sospecho que usted no tiene su IBOutlet conectado correctamente. Es su etiqueta nil?
    • presentada error de apple radar #16781060 para este
    • como de 10 de diciembre,2014 este truco es todavía necesario en iOS8
    • Obras para textColor así
    • Gracias, este truco funciona para mí…yo estoy usando Xcode 6.2 y iOS 8.2.
    • En Xcode 6.4 todavía funciona de la misma manera.
    • Lamentablemente todavía se requiere en iOS9.
    • Me quedé en este tema muchas veces y cada vez, me vino a esta respuesta :D, muchas Gracias @jab
    • muchas gracias! Me han luchado en esta como 1 hora…
    • extraño, sí, pero esto sólo funcionó para mí 🙁

  2. 74

    En mi caso, es cuestión de «seleccionable» la propiedad de UITextView.

    Así que me registré ‘seleccionable’ propiedad de UITextView en el Guión gráfico Editor para establecer que SÍ
    UITextView - configuración de la fuente no funciona con iOS 6 en XCode 5

    y más tarde en viewWillAppear establecer esta propiedad a NO.

    textview.text = @"some text";
    textview.selectable = NO;
    • Este fue en realidad mi problema también. No tiene ningún sentido.
    • Mismo aquí – set de texto a blanco en el Guión gráfico – no pasa nada permanece «default» hasta que puse «seleccionables» – ¿por qué?
    • Trabajó para mí también. Aunque hablando con un compañero de trabajo estamos pensando que esto podría ser debido a que es la causa de la UITextView para volver a dibujar.
    • Wow no puedo creer que esto funciona…. Esto debe ser un error en la Manzana de la final seguramente?!
  3. 55

    El problema fue causado por la editable propiedad de ser falsa en el Guión gráfico. No tengo absolutamente ninguna idea de por qué esto provocó que la fuente se mantendrá sin cambios y sólo en iOS 6.

    • Esto no funciona para mí, pero la configuración de la fuente después de ajustar el texto. Vaya usted a saber. Gracias Apple!
    • gracias a la u. funciona como un encanto
    • La comprobación de selectable propiedad hizo el truco para mí.
    • revisando los «Seleccionables» o «editable» trabajó también para mí. Esto es definitivamente un error en la Manzana de la final.
    • Esto también se aplica al color de texto en mi caso.
    • Problema y la solución se aplica en iOS 9 (Xcode 7.3)
    • Que vergüenza de Apple! Robaron mis horas!

  4. 20

    Para mí es el trabajo si usted fija el texto de su UITextView y después de ajustar el tipo de letra (del mismo color) :

    _myTextView.text = @"text";
    [_myTextView setFont:[UIFont fontWithName:@"Helvetica Neue" size:18.0f]];
    _myTextView.textColor = [UIColor whiteColor];
    • Es una locura que tenemos que experimentar con el azar cócteles de código para conseguir las cosas más básicas como la de este trabajo. Este el único que trabajó para mí.
    • sí… era para iOS 6. Hacer la prueba en iOS 9 y el mismo resultado ?
    • Esto me ayudó a solucionar mi problema para iOS 8.
  5. 13

    Gracias por todas las respuestas chicos. Problema es todavía presente en iOS9. Lo que he descubierto, es que cuando se establece «la Interacción del Usuario Enabled = false» en el Interface Builder, usted puede dejar Editable y Seleccionable = verdadero y el usuario no será capaz de editar una vista de texto.

    Así que mi solución es:

    1. Conjunto la Interacción del Usuario Enabled = False en IB
    2. Conjunto Editable = True en IB
    3. Conjunto Seleccionable = True en IB
    4. Configurar la vista texto en cualquier forma que usted desee.
    • Bazar. Gracias
    • Oh, es tan extraño, gracias por esta solución.
    • Gracias amigo realmente funcionó!
    • mi Héroe del día!!!
  6. 10

    Código swift:

    textOutlet.editable = true
    textOutlet.textColor = UIColor.whiteColor()
    textOutlet.font = UIFont(name: "ArialMT", size: 20)
    textOutlet.editable = false

    O si cambia el texto de la primera mágicamente consigue solucionado

    textOutlet.text = "omg lol wtf"
    textOutlet.textColor = UIColor.whiteColor()
    textOutlet.font = UIFont(name: "ArialMT", size: 20)
  7. 7

    He encontrado el tamaño de la fuente estaba siendo ignorado. Esto fue resuelto mediante la marcación de la casilla de verificación llamada: Seleccionable (después de haber seleccionado la UITextView dentro de un guión gráfico)

  8. 6

    Este problema sólo ocurre cuando el ajuste Seleccionable propiedad a FALSE en el Interface Builder.

    En caso de que usted está obligado a tener el Editable y selección de las propiedades establece en FALSE hacerlo desde el CÓDIGO y no en el Interface Builder.

    Resumiendo, hacer Editable y selección de propiedades = en el Interface Builder y, a continuación, agregue el código siguiente en caso de que usted necesita las propiedades para ser FALSO:

    _textView.editable   = NO;
    _textView.selectable = NO;

    Espero que esto ayude,

  9. 1

    Swift 3 categoría que trabajó para mí:

    extension UITextView {
        func setFontAndUpdate(_ font: UIFont?) {
            self.font = font
    
            //Font doesn't update without text change
            let text = self.text
            self.text = nil
            self.text = text
        }
    }
  10. 0

    En mi caso(que se desarrolla en Xcode 7.3, iOS 9),

    La causa fue el fin de establecer el texto y la fuente-familia/tamaño, no las opciones editables o seleccionable por el número de preguntas que decir allí.(y no me da ningún guión, xib en que Textview.)

    Si yo de entrada como

    [myTextView setFont:[UIFont fontWithName:@"HelveticaNeue-Italic" size:20]];
    myTextView.attributedText = mAttStr;

    a continuación, la fuente del tamaño y la familia no han cambiado, pero los demás
    cuando me revertir esos dos pasos, esto funciona. Establecer el texto debe estar por delante de la configuración de la fuente de la familia/tamaño.

  11. 0

    Como se ha mencionado por otros:

    textView.font = UIFont.systemFont(ofSize: 16)
    textView.isEditable = false

    p.s. no hay necesidad de primer conjunto isEditable como true ya que es true por defecto: un poco más corto, un poco mejor

Dejar respuesta

Please enter your comment!
Please enter your name here