8
votes

Déplacer le curseur au début de Uitextfield

existe-t-il un moyen de faire le curseur être au début d'un uitextfield ?

Lorsque j'affiche le contrôle avec du contenu, le curseur est placé à la fin du texte. Je voudrais le déplacer au début.


0 commentaires

3 Réponses :


8
votes

Vous combattez le système sur celui-ci. Uitextfield Code> n'a pas de propriétés publiques pour définir la position du curseur (qui est réellement corrélée au début de la sélection actuelle). Si vous pouvez utiliser un uitextview code> à la place, les méthodes de délégué suivantes forceront le curseur au début du texte. Sachez simplement que les utilisateurs ne s'attendent pas à ce comportement et vous devriez vérifier vos motivations pour vouloir le faire.

- (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;
    }
}


1 commentaires

Hey Warren, merci mon pote. Ce code est juste un homme génial. Chapeau.



19
votes

uitextfield code> est conforme au protocole uitextinput code>, qui fournit des méthodes qui vous permettent de contrôler la plage sélectionnée. Cela fonctionne dans mes tests:

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


1 commentaires

Cette solution fonctionne bien! Assurez-vous de vous conformer au protocole de délégué UITEXTFIELD. :)



1
votes

fonctionne pour moi xxx


0 commentaires