我正在尝试将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];
}
答案 0 :(得分:0)
我猜这是适用于iOS 6的?我对7没有任何问题,但是6只是熊。这对我有用,但我不知道为什么。设置所选文本范围后,请尝试添加以下行:
[txtSearch setBaseWritingDirection:UITextWritingDirectionNatural forRange:txtSearch.selectedTextRange];