2013-09-04 7 views
5

Я новичок в разработке iOS.textViewDidEndEditing не называется

Я написал заголовочный файл следующий как этот

@interface TextView : UITextView <UITextViewDelegate, UIPopoverControllerDelegate> 

в TextView.h.

Код файла реализации заключается в следующем:

- (BOOL)textViewShouldBeginEditing:(TextView *)textView 
{ 
    ZWLog(@"called should begin edit"); 
    return YES; 
} 

- (void)textViewDidBeginEditing:(TextView *)textView 
{ 
    ZWLog(@"called did begin edit"); 
} 

- (BOOL)textViewShouldEndEditing:(TextView *)textView 
{ 
    ZWLog(@"called should end editing"); 
    return YES; 
} 

- (void)textViewDidEndEditing:(TextView *)textView 
{ 
    ZWLog(@"view did end edit"); 
    return YES; 
} 

- (BOOL)textView:(TextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text 
{ 
    //my own code 
    return YES; 
} 

- (void)textViewDidChange:(TextView *)textView 
{ 
    //my own code 
} 

Когда я начинаю вводить символ в UITextView, я получил ответ от

  • textViewShouldBeginEditing.
  • textViewDidBeginEditing.
  • shouldChangeTextInRange.
  • textViewDidChange.

Но я не получил ответа от textViewDidEndEditing или textViewShouldEndEditing. Вы не знаете, почему их не называют?

Спасибо за ваши ответы.

+0

Метод textViewDidEndEditing вызывается, когда KeyBoard исчезает другими словами, когда пользователь перестает печатать текст в текстовом представлении и вызывается resignfirstresponder. –

+0

@GyanendraSingh: Спасибо за ваш комментарий. – Kirubachari

ответ

8

textViewDidEndEditing вызывается, когда текстовое поле покидает свой первый ответчик, когда клавиатура исчезает.

2

убедитесь, что вы связали делегата правильно с .xib

и использовать описанные ниже методы, как это и посмотрим, что будет вызван

-(BOOL)textViewShouldEndEditing:(UITextView *)textView 
{ 
    ZWLog(@"textViewShouldEndEditing"); 
    return TRUE; 
} 

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text 
{ 
    ZWLog(@"shouldChangeTextInRange"); 
    // Any new character added is passed in as the "text" parameter 
    if ([text isEqualToString:@"\n"]) 
    { 
     [textView resignFirstResponder]; 
     return FALSE; 
    } 

    // For any other character return TRUE so that the text gets added to the view 
    return TRUE; 
} 
0

Убедитесь, что ваш делегат зашифрован в вашем XIB-файле с помощью текстового файла , если он находится в файле XIB.