2013-08-27 47 views
0

我正試圖在平移手勢上移動UITextfield的光標。但我正面臨一些問題。當光標位於uitextfield的角落時,在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

我猜這是爲iOS 6?我對7沒有任何問題,但6是一隻熊。這對我有效,但我不知道爲什麼。設置完選定的文本範圍後,請嘗試添加以下行:

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