es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo puedo actualizar dinámicamente los símbolos en la barra de herramientas?

Tengo un textview y una barra de herramientas, que agregué con código:

let toolBarController = UIToolbar()
toolBarController.sizeToFit()
postTextView.inputAccessoryView = toolBarController

Quiero poner una etiqueta en esta barra de herramientas y mostrar dinámicamente los símbolos del textview. ¿Cómo se puede hacer esto?

Intenté usar un botón, pero no sé cómo cambiar dinámicamente su texto:

let resultsLabel = UIBarButtonItem(title: "\(count)", style: .plain, target: self, action: nil)
resultsLabel.isEnabled = false
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para agregar una etiqueta a la barra de herramientas y mostrar dinámicamente los símbolos del textview, puedes utilizar una vista personalizada en lugar de un botón. Aquí tienes un ejemplo de implementación:

    let toolBarController = UIToolbar()
    toolBarController.sizeToFit()
    
    // Crea una vista personalizada con una etiqueta y configúrala como la vista accesoria de entrada
    let customView = UIView(frame: CGRect(x: 0, y: 0, width: toolBarController.frame.size.width, height: 44))
    let label = UILabel(frame: customView.bounds)
    label.textAlignment = .center
    label.text = "\(postTextView.text.count) / 100" // Puedes reemplazar "100" con la cantidad máxima de caracteres que desees
    customView.addSubview(label)
    postTextView.inputAccessoryView = customView
    
    // Agrega un objetivo al textview para actualizar la etiqueta cuando el texto cambie
    postTextView.addTarget(self, action: #selector(updateLabel), for: .editingChanged)
    
    @objc func updateLabel() {
        label.text = "\(postTextView.text.count) / 100"
    }
    

    Este código crea una vista personalizada con una etiqueta y la establece como la vista accesoria de entrada del textview. La etiqueta muestra la cantidad actual de caracteres del textview y la cantidad máxima de caracteres (que puedes reemplazar con cualquier valor que desees).

    El código también agrega un objetivo al textview para actualizar la etiqueta cuando el texto cambie. La función updateLabel obtiene la cantidad actual de caracteres del textview y actualiza el texto de la etiqueta en consecuencia.

Comments are closed.