cómo saber cuando el texto se pega en UITextView

Qué evento es disparado cuando un bloque de texto se pega en un UITextView? Necesito modificar el marco de mi textView cuando se pega el texto en.

Gracias por leer.

Tengo un requisito como [UIPasteboard generalPasteboard].string] es más de 20 caracteres, sólo quiero reemplazar primeros 20 caracteres, Así que aquí en shouldChange método de texto ya viene con todos los copiado quiero hacer podría hacer a cambio de la verdad y de cambio de hasta 20 caracteres. Desde que estoy trabajando con swift no puede cambiar el parámetro/valor de cadena debido a que se deja constante. Alguien me puede ayudar en esto. Gracias –

OriginalEl autor Mrwolfy | 2012-09-17

7 Kommentare

  1. 10

    Su UITextView llamará a su UITextViewDelegate método

     - (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text

    si un delegado no ha sido establecida. Esto se llama cuando un personaje se escribe en el teclado, y cuando el texto se pega en la vista de texto. El texto pegado en el replacementText argumento.

    Ver http://developer.apple.com/library/ios/#documentation/uikit/reference/UITextViewDelegate_Protocol/Reference/UITextViewDelegate.html#//apple_ref/occ/intf/UITextViewDelegate

    Tengo un requisito como [UIPasteboard generalPasteboard].string] es más de 20 caracteres, sólo quiero reemplazar primeros 20 caracteres, Así que aquí en shouldChange método de texto ya viene con todos los copiado quiero hacer podría hacer a cambio de la verdad y de cambio de hasta 20 caracteres. Desde que estoy trabajando con swift no puede cambiar el parámetro/valor de cadena debido a que se deja constante. Alguien me puede ayudar en esto. Gracias –

    OriginalEl autor joseph.hainline

  2. 26

    Aquí es lo que yo uso para detectar pegar eventos en UITextView:

     //Set this class to be the delegate of the UITextView. Now when a user will paste a text in that textview, this delegate will be called.
    -(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
    
        //Here we check if the replacement text is equal to the string we are currently holding in the paste board
        if ([text isEqualToString:[UIPasteboard generalPasteboard].string]) {
    
            //code to execute in case user is using paste
    
        } else {
    
            //code to execute other wise
        }
    
        return YES;
    }
    Enfriar la solución, a mí me funcionó. Gracias!
    Tengo un requisito como [UIPasteboard generalPasteboard].string] es más de 20 caracteres, sólo quiero reemplazar primeros 20 caracteres, Así que aquí en shouldChange método de texto ya viene con todos los copiado quiero hacer podría hacer a cambio de la verdad y de cambio de hasta 20 caracteres. Desde que estoy trabajando con swift no puede cambiar el parámetro/valor de cadena debido a que se deja constante. Alguien me puede ayudar en esto. Gracias

    OriginalEl autor carlos16196

  3. 10

    La comprobación de la mesa de trabajo de la cadena de if string == UIPasteboard.general.string tarda un par de segundos si usted tiene el tiempo de condena en la mesa de trabajo. El usuario ve el teclado está congelado mientras esta comprobación.
    Mi solución es comprobar si la longitud de los nuevos personajes es mayor que 1.
    Si es mayor que 1, la cadena es de la mesa de trabajo.

    func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
            if string.characters.count > 1{
                //User did copy & paste
    
            }else{
                //User did input by keypad
            }            
             return true
     }
    Técnicamente, esto no detectar si el usuario estaba pegando un carácter de la mesa de trabajo (por qué por qué por qué?) o escribiendo un personaje, sino para todos los intentos y propósitos, se hace el trabajo. Es lo que voy a usar.
    Parcialmente de su trabajo, pero cuando el usuario intenta pegar solo char se producirá un error

    OriginalEl autor Takamitsu Mizutori

  4. 4

    carlos16196 fue un buen enfoque, pero también me gustaría modificar cambiando [text isEqualToString:[UIPasteboard generalPasteboard].string] a [text containsString:[UIPasteboard generalPasteboard].string]

    Haciendo esto, usted detecta cuando el usuario pega en el textview después de otro texto escrito que no está en el UIPasteboard.

    Este es el código:

    -(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
    
    //Here we check if the replacement text is equal to the string we are currently holding in the paste board
    if ([text containsString:[UIPasteboard generalPasteboard].string]) {
    
        //code to execute in case user is using paste
    
    } else {
    
        //code to execute other wise
    }
    
    return YES;
    }
    se le olvidó hacer el cambio que usted menciona en su código publicados
    Gracias, no me he dado cuenta.
    Tengo un requisito como [UIPasteboard generalPasteboard].string] es más de 20 caracteres, sólo quiero reemplazar primeros 20 caracteres, Así que aquí en shouldChange método de texto ya viene con todos los copiado quiero hacer podría hacer a cambio de la verdad y de cambio de hasta 20 caracteres. Desde que estoy trabajando con swift no puede cambiar el parámetro/valor de cadena debido a que se deja constante. Alguien me puede ayudar en esto. Gracias –

    OriginalEl autor danielrosero

  5. 4

    Este trabajo Perfecto Xcode 9.4 Swift 4.1

     func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool {
        if text.contains(UIPasteboard.general.string ?? "") {
            return false
        }
        return true
    }

    Cuando cada vez que el usuario intente Pegar en el campo de texto si la condición se ejecutará

    Este código va a dejar de pegar

    OriginalEl autor Raj Anjana

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Recent Articles

Python «set» con duplicados/elementos repetidos

Hay una forma estándar de representar un "conjunto" que puede contener elementos duplicados. Como yo lo entiendo, un conjunto tiene exactamente un cero o...

Python: generador de expresión vs rendimiento

En Python, ¿hay alguna diferencia entre la creación de un generador de objetos a través de un generador de expresión versus el uso de...

Cómo exportar/importar la Masilla lista de sesiones?

Hay una manera de hacer esto? O tengo que tomar manualmente cada archivo de Registro? InformationsquelleAutor s.webbandit | 2012-10-23

no distingue mayúsculas de minúsculas coincidentes en xpath?

Por ejemplo, para el xml a continuación <CATALOG> <CD title="Empire Burlesque"/> <CD title="empire burlesque"/> <CD...