1. 程式人生 > >UITextField 游標的位置獲取和設定

UITextField 游標的位置獲取和設定

今天做一個自定義數字鍵盤的控制元件,有需要獲取到游標位置,所以在網上找到了一段程式碼,主要是獲取游標的位置和設定游標的位置,貼出來。

/**
 *  游標選擇的範圍
 *
 *  @return 獲取游標選擇的範圍
 */
- (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); } /** * 設定游標選擇的範圍 * * @param
range 游標選擇的範圍 */
- (void) setSelectedRange:(NSRange) range { 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]; }