轉正:http://blog.csdn.net/reylen/article/details/17750523
UITextField 光標的位置設置獲取
通過給UITextField 加一個拓展
- //#import "UITextField+ExtentRange.h"
- #import <UIKit/UIKit.h>
- @interface UITextField (ExtentRange)
- - (NSRange) selectedRange;
- - (void) setSelectedRange:(NSRange) range;
- @end
- // #import "UITextField+ExtentRange.m"
- #import "UITextField+ExtentRange.h"
- @implementation UITextField (ExtentRange)
- - (NSRange) selectedRange
- {
- UITextPosition* beginning = self.beginningOfDocument;
- UITextRange* selectedRange = self.selectedTextRange;
- UITextPosition* selectionStart = selectedRange.start;
- UITextPosition* selectionEnd = selectedRange.end;
- const NSInteger location = [self offsetFromPosition:beginning toPosition:selectionStart];
- const NSInteger length = [self offsetFromPosition:selectionStart toPosition:selectionEnd];
- return NSMakeRange(location, length);
- }
- - (void) setSelectedRange:(NSRange) range // 備註:UITextField必須爲第一響應者纔有效
- {
- UITextPosition* beginning = self.beginningOfDocument;
- UITextPosition* startPosition = [self positionFromPosition:beginning offset:range.location];
- UITextPosition* endPosition = [self positionFromPosition:beginning offset:range.location + range.length];
- UITextRange* selectionRange = [self textRangeFromPosition:startPosition toPosition:endPosition];
- [self setSelectedTextRange:selectionRange];
- }
- @end