0

我正在尝试在平移手势上移动 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];

}
4

1 回答 1

0

我猜这是针对iOS 6的?我对 7 没有任何问题,但 6 一直是熊。这对我有用,但我不知道为什么。设置您选择的文本范围后,尝试添加此行:

[txtSearch setBaseWritingDirection:UITextWritingDirectionNatural forRange:txtSearch.selectedTextRange];
于 2014-02-20T04:51:39.780 回答