簡體   English   中英

將光標移動到UITextField的開頭

[英]Moving the cursor to the beginning of UITextField

有沒有辦法讓光標位於UITextField的開頭?

當我用內容顯示控件時,光標位於字符串的末尾。 我想把它移到開頭。

UITextField符合UITextInput協議,該協議提供允許您控制所選范圍的方法。 這適用於我的測試:

-(void)textFieldDidBeginEditing:(UITextField *)textField {
    textField.selectedTextRange = [textField
        textRangeFromPosition:textField.beginningOfDocument
        toPosition:textField.beginningOfDocument];
}

你正在打這個系統。 UITextField沒有任何公共屬性來設置光標位置(實際上與當前選擇的開頭相關)。 如果您可以使用UITextView ,則以下委托方法將強制光標到文本的開頭。 請注意,用戶不會期望這種行為,您應該仔細檢查您想要這樣做的動機。

- (void)textViewDidBeginEditing:(UITextView *)textView {
    shouldMoveCursor = YES;
}

- (void)textViewDidChangeSelection:(UITextView *)textView {
    if(shouldMoveCursor)
    {
        NSRange beginningRange = NSMakeRange(0, 0);
        NSRange currentRange = [textView selectedRange];
        if(!NSEqualRanges(beginningRange, currentRange))
            [textView setSelectedRange:beginningRange];
        shouldMoveCursor = NO;
    }
}

shouldMoveCursor是您在控制器中維護的BOOL變量。

適合我

// Get current selected range , this example assumes is an insertion point or empty selection
UITextRange *selectedRange = [textField selectedTextRange];
// Calculate the new position, - for left and + for right
UITextPosition *newPosition = [textField positionFromPosition:selectedRange.start offset:3];
// Construct a new range using the object that adopts the UITextInput, our textfield
UITextRange *newRange = [textField textRangeFromPosition:newPosition toPosition:newPosition];
// Set new range
[textField setSelectedTextRange:newRange];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM