¿Cómo puedo llamar a algún código al entrar en un UITextView (usuario pulsa editar) y dejando a la vista (usuario pulsa para salir de ella)?

Agradecemos cualquier ayuda.

InformationsquelleAutor Josh Kahane | 2010-11-09

4 Comentarios

  1. 40

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

    Aquí usted puede encontrar varios métodos útiles para investigar:

    • textViewDidBeginEditing:
    • textViewDidEndEditing:

    Además de vivir UITextView que a menudo se deben implementar acciones que llama [yourTextView resignFirstResponder];

    Objective-C ejemplo

    //you may specify UITextViewDelegate protocol in .h file interface, but it's better not to expose it if not necessary
    @interface ExampleViewController()<UITextViewDelegate> 
    
    @end
    
    @implementation ExampleViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
    
        //assuming _textView is already instantiated and added to its superview
        _textView.delegate = self;
    }
    
    
    //it's nice to separate delegate methods with pragmas but it's up to your local code style policy
    #pragma mark UITextViewDelegate
    
    - (void)textViewDidBeginEditing:(UITextView *)textView {
        //handle user taps text view to type text
    }
    
    - (void)textViewDidEndEditing:(UITextView *)textView {
        //handle text editing finished    
    }
    
    @end

    Swift Ejemplo

    class TextViewEventsViewController: UIViewController, UITextViewDelegate {
    
        @IBOutlet weak var exampleTextView: UITextView!
    
        override func viewDidLoad() {
            super.viewDidLoad()
    
            self.exampleTextView.delegate = self
        }
    
        func textViewDidBeginEditing(_ textView: UITextView) {
            print("exampleTextView: BEGIN EDIT")
        }
    
        func textViewDidEndEditing(_ textView: UITextView) {
            print("exampleTextView: END EDIT")
        }
    }
    • Un par de líneas de código de ejemplo sería muchísimo mejor.
    • cosa segura, agregó
  2. 6

    También se podría implementar el UITextViewDidChange los métodos de delegado. Yo uso el código de abajo en mi aplicación para tomar notas rápidas. Cada vez que el usuario ha introducido un carácter, el observador de las capturas de este desde el centro de notificaciones y llamadas de la saveText método.

    He aquí cómo:

    Añadir esta línea a la viewDidLoad método:

    [NSNotificationCenter.defaultCenter addObserver:self selector:@selector(textViewDidChange:) name:UITextViewTextDidChangeNotification object:nil];

    y estas líneas en el lugar adecuado en el código (como en la sección que se encarga de la vista del texto de los métodos de delegado. SUGERENCIA: Utilice pragma marcas para este (#pragma marca – TextView los Métodos de Delegado):

    - (void)textViewDidChange:(UITextView *)textView{
    
        NSLog(@"textViewShouldEndEditing"); //Detect in log output if the method gets called
        [self saveText:nil]; //Call any method you like
    
    }
    • La firma del método debe ser - (void)textViewDidChange:(NSNotification *)notification. De la documentación: «El afectado vista se almacena en la object parámetro de la notificación.»
  3. 0
    txtviewaddress.text="Address"
    
    txtViewAddress.TextColor = UIColor.LightGray;
    txtViewAddress.ShouldBeginEditing += (textView) =>
            {
     txtViewAddress.Text = "";
                txtViewAddress.TextColor = UIColor.Black;
                return true;
    };
    txtViewAddress.ShouldEndEditing += (textView) =>
            {
                if (textView.Text == "")
                {
                    txtViewAddress.Text = " Address";
                    txtViewAddress.TextColor = UIColor.LightGray;
    
                }
                return true;
            };
    • Hola! Gracias por responder. Sin embargo, podría usted por favor, añada más detalles? Código de respuesta no suelen ser muy eficaces.
    • Se utiliza Para Establecer El Texto de Marcador de posición En el TextView [Xamarin IOS]

Dejar respuesta

Please enter your comment!
Please enter your name here