A) Сначала я разоблачить, как я пытаюсь решить эту проблему без использования невидимого UILabelИспользование невидимых UILabel и триггер UITextView события или не используя UILabel и обрабатывать UITextView крана распознавателей
1) Первый кран над UITextView делает его первым ответчиком. Это было бы по умолчанию (это не требуется, чтобы добавить код для этого), но так как водопроводная распознаватель должен вызывать другие действия позже, это также необходимо, чтобы создать персонализированный водопроводную распознаватель:
UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(singleTapRecognized:)];
[singleTap setNumberOfTapsRequired:1];
[TextView addGestureRecognizer:singleTap];
[TextView setUserInteractionEnabled:YES];
[singleTap release];
-(IBAction)singleTapRecognized:(id)sender
{
[TextView becomeFirstResponder];
}
2) Когда текст изменяется, строка меню должна быть скрыта. Это не создает проблемы, потому что его нужно только добавить код внутри TextViewDidChange:
- (void)textViewDidChange:(UITextView *)textView
{
if (bTitleBar)
{
bTitleBar = NO;
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.30f];
menuBar.transform =
CGAffineTransformMakeTranslation(
menuBar.frame.origin.x,
-50
);
CGRect newFrameSize;
currentOrientation = [UIApplication sharedApplication].statusBarOrientation;
if (currentOrientation==UIInterfaceOrientationPortrait ||currentOrientation==UIInterfaceOrientationPortraitUpsideDown)
{
newFrameSize = CGRectMake(96, 0, txtMain.frame.size.width, 605);
}
else
{
newFrameSize = CGRectMake(96, 0, txtMain.frame.size.width, 270);
}
textView.frame = newFrameSize;
[UIView setAnimationDuration:0];
}
}
3) Следующий кране над UITextView (после того, как текст изменился и MenuBar скрыт), должен вызывать видимость меню бар снова. В этом случае я бы добавил код внутри singleTapRecognized, поэтому он будет показан снова, но по какой-то причине singleTap UITapGestureRecognizer перестает работать, и поэтому метод singleTapRecognized больше не запускается. Поэтому я начал с плана B:
B) Решение, которое я пробовал, состояло в использовании невидимого UILabel, который я визуально (не программно) прикреплял к UITextView. Я также сделал соответствующий IBOutlet и установил ссылку. Теперь унифицированный UIGestureRecognizer добавлен в UILabel, а не в UITextView. Проблема в том, что UITextView нельзя прокручивать или использовать, потому что UILabel OVER это и становится препятствием.
Любые идеи о том, как это решить? Что лучше продолжать работать с планом A или B?