как сделать эту операцию в UITextView (iphone) - PullRequest
0 голосов
/ 27 сентября 2011

В My textView есть значение по умолчанию «Имя»

Я хочу реализовать в нем такую ​​операцию ..

1) сначала должно быть указано «имя»
2) когда я начинаю редактировать, он должен стать nil
3) когда я завершу редактирование, если поле все еще ноль, оно должно снова отображаться как "имя"

Может ли кто-нибудь помочь мне с этим?

// * Это то, чем я сейчас занимаюсь ** //

 - (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range 
    replacementText:(NSString *)text
         {    
if (first_name.text=@"") {
    first_name.text=@"First Name(Required)";
    }
// Any new character added is passed in as the "text" parameter
if ([text isEqualToString:@"\n"]) {
    // Be sure to test for equality using the "isEqualToString" message

    [textView resignFirstResponder];

    // Return FALSE so that the final '\n' character doesn't get added
    return FALSE;
}
// For any other character return TRUE so that the text gets added to the view
return TRUE;
   return TRUE;
}


- (BOOL)textViewShouldBeginEditing:(UITextView *)textView {
NSLog(@"textViewShouldBeginEditing");
textView.scrollEnabled=NO;

if (textView == first_name) {
    first_name.text=nil;
}


return YES;

}

Ответы [ 2 ]

0 голосов
/ 27 сентября 2011

Вам нужно наложить UILabel поверх текстового представления на нужный вам текст, установить для его userInteractionEnabled значение NO, а в методе делегата текстового поля shouldBeginEditing вы скрываете UILabel перед возвратом YES и отображаете его на mustFinishEditing.

0 голосов
/ 27 сентября 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...