iPhone: textViewdDidBeginEditing: textview.tag всегда 0
В моем приложении я написал цикл для присвоения тега моим текстовым представлениям:
for(j = 0; j<9; j++)
for(k = 0; k<9; k++) {
UITextView*txtview =
[[UITextView alloc]initWithFrame:CGRectMake(x,y,25,25)];
txtview.backgroundColor = [UIColor clearColor];
txtview.textColor = [UIColor redColor];
txtview.font = [UIFont fontWithName:@"TrebuchetMS-Bold" size:18];
txtview.tag = 10*k + j;
txtview.keyboardType = UIKeyboardTypeNumberPad;
[self.view addSubview:txtview];
[txtview sizeToFit];
txtview.delegate = self;
x = x+40;
y = y+40;
NSLog(@"%d",txtview.tag);
}
}
Журнал в конце цикла правильно печатает только что назначенный тег.
Проблема в том, что при вызове метода textViewDidBeginEditing, если я пытаюсь получить textView.tag с другим журналом, он всегда возвращает 0. Как я могу решить эту проблему?
Заранее спасибо.
3 ответа
Решение
Помимо добавления UITapGestureRecognizer, вы можете установить delgate для UITextView.
Код для этого заключается в следующем.
txtview.delegate = self;
Теперь вы можете слушать метод делегата.
- (void)textViewDidBeginEditing:(UITextView *)textView
{
NSLog(@"textView tag is %d",txtview.tag);
}
Я думаю, что вы должны использовать
- (BOOL)textViewShouldBeginEditing:(UITextView *)textView
и установить делегат TextView
потому что я скопировал твой код и попробовал себя, и он работал.