Как я могу определить, когда редактируется мой UITextView, а затем вызвать действие?

#iphone #objective-c #ios #xcode #uitextview

#iPhone #objective-c #iOS #xcode #uitextview

Вопрос:

Когда редактируется мой UITextView, я хочу, чтобы появлялась кнопка. Как я могу это сделать?

Спасибо!

Ответ №1:

Внедрите UITextViewDelegate его в свой класс, и когда начнется редактирование UITextView , он вызовет textViewShouldBeginEditing: свою функцию, где вы можете делать все, что захотите. Вы можете показывать свою кнопку при запуске редактирования и скрывать при завершении редактирования в этой функции.

 – textViewShouldEndEditing
 

Для получения дополнительной информации см. Это

Ответ №2:

я немного подробно остановлюсь на приведенном выше ответе:

YourViewController.h

 @interface YourViewController : UIViewController <UITextViewDelegate>
 

YourViewController.m

 - (void)viewDidLoad
{
    [super viewDidLoad];

    self.yourTextView.delegate = self;

}

- (BOOL)textViewShouldBeginEditing:(UITextView *)textView{
   // do smth like create a button 
   return TRUE;
}
 

Подробнее читайте руководство Apple

Ответ №3:

Ознакомьтесь со ссылкой на протокол UITextViewDelegate . Если вы настроите свой UIViewController на delegate UITextView, он будет отправлен textViewDidBeginEditing: и textViewDidEndEditing: . Вы можете показывать / скрывать свою кнопку при получении этих сообщений.

Ответ №4:

// в представлении загрузился.

 UITextField entered1 = [[UITextField alloc] initWithFrame:CGRectMake(120.0, 85.0, 150.0, 25.0)]; 
[entered1 setBackgroundColor:[UIColor whiteColor]]; 
[entered1 addTarget:self action:@selector(example:)forControlEvents:UIControlEventTouchDown];
[self.view addSubview:entered1];
[entered1 release];  
 

или

   [textfieldname addTarget:self action:@selector(example:)forControlEvents:UIControlEventTouchDown];
        .........
  }
  -(IBAction) example:(UIControl *)sender
  {
   //your code here.
  }
 

Комментарии:

1. Вопрос был примерно UITextView .

Ответ №5:

Xcode 6.4, iOS 8.4, включен ARC

Не повторяйте мою ошибку, мне потребовалось много времени, чтобы понять это, но я добавлял…

 @interface YourViewController : UIViewController <UITextFieldDelegate>
 

потому что я привык работать с UITextField, но, очевидно, нам нужно…

 @interface YourViewController : UIViewController <UITextViewDelegate>
 

Надеюсь, это сэкономит кому-то время. Приветствия!