当光标位于uitextfield的角落时,在UItextfield中滚动文本

时间:2013-08-27 09:29:19

标签: ios objective-c gesture

我正在尝试将UITextfield的光标移动到平移手势上。但是我遇到了一些问题。

我有一个UITextfield和UIView(相同大小的UITextfield)。

我在UIView上添加了平移手势,因为我想通过在UIView上拖动手指来移动UITextfield的光标位置

但是当我移动光标位置并且光标位于UITextfield的角落时,文本滚动不会发生。

谁能帮助我解决这个问题?

代码:

-(void)panGesture:(UIPanGestureRecognizer *)pan
{

CGPoint translation = [pan translationInView:btnMove];
CGPoint vel = [pan velocityInView:btnMove];

UITextRange *range = txtSearch.selectedTextRange;
NSInteger endOffset = [txtSearch offsetFromPosition:txtSearch.beginningOfDocument toPosition:range.end];

if (vel.x > 0)
{

    endOffset = endOffset + 1;

    NSLog(@"right - %ld",(long)endOffset);

}
else{

    endOffset = endOffset - 1;

    NSLog(@"left - %ld",(long)endOffset);

}

UITextPosition *from = [txtSearch positionFromPosition:[txtSearch beginningOfDocument] offset:endOffset];
UITextPosition *to = [txtSearch positionFromPosition:[txtSearch beginningOfDocument] offset:endOffset];

txtSearch.selectedTextRange = [txtSearch textRangeFromPosition:from toPosition:to];

}

1 个答案:

答案 0 :(得分:0)

我猜这是适用于iOS 6的?我对7没有任何问题,但是6只是熊。这对我有用,但我不知道为什么。设置所选文本范围后,请尝试添加以下行:

[txtSearch setBaseWritingDirection:UITextWritingDirectionNatural forRange:txtSearch.selectedTextRange];