2011-04-23 2 views
1

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

Теперь, после вызова canTouchMe, я выводил UITextView на передний план и назначал его как первый ответчик. Тем не менее, я хотел бы, чтобы курсор был помещен везде, где пользователь коснулся экрана. Прямо сейчас, курсор прыгает до самого конца UITextView, даже если пользователь коснулся самого его начала.

- Есть ли способ передать прикосновение к UITextView?

- Или есть способ сообщить UITextView, чтобы поместить курсор рядом с текущей позицией?

Вот мой код:

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{ 

    [super touchesMoved:touches withEvent:event]; 

    UITouch *touch = [touches anyObject]; 
    CGPoint currentPosition = [touch locationInView:self.view]; 

    CGFloat deltaX = fabsf(gestureStartPoint.x - currentPosition.x); // will always be positive 
    CGFloat deltaY = fabsf(gestureStartPoint.y - currentPosition.y); // will always be positive 

    if (deltaY == 0 && deltaX == 0) { 

     NSLog(@"Touch"); 


     [self.view sendSubviewToBack:canTouchMe]; 


     [textView becomeFirstResponder]; 


    } 


} 

Я пытался передать на контакт с [TextView touchesBegan: прикасается withEvent: событие]; но это не сработало.

ответ

1

Я не пробовал это, но после прочтения документации для UITextView я хотел бы играть с этим кодом:

[myUITextView scrollRangeToVisible:[myUITextView selectedRange]]; 

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

+0

Извините, мне потребовалось столько времени. Я просто попробовал это, но это не сработало (это никак не повлияло на мнение). Думаю, мне нужно будет преобразовать currentPosition в selectedRange, но не могу придумать умный способ сделать это. –

Смежные вопросы