2011-04-23 118 views
1

我有一个隐藏在名为canTouchMe的另一个视图下的UITextView。如何将触摸传递给UITextView

现在,一旦canTouchMe被调用,我将UITextView放在前面,并将其指定为第一响应者。不过,我希望将光标放在用户触摸屏幕的任何地方。现在,即使用户触及了它的最开始部分,光标也会跳到UITextView的最后。

- 有没有办法将触摸传递给UITextView?

- 或者有办法告诉UITextView把光标放在currentPosition的附近吗?

这是我的代码:

- (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,但不能想到一个聪明的方法来做到这一点。 – 2011-04-26 09:45:07