Я могу выбрать определенный блок текста в UITextField?

Очень хороший RegEx, предложенный на на этом сайте :

(?

Если python имеет метод String Split, он должен работать ...

In Java:

String s = "loremIpsum";
words = s.split("(?<!^)(?=[A-Z])");

24
задан Sunian314 18 July 2010 в 22:35
поделиться

2 ответа

С UITextField вы не можете. Но если вы видите заголовки, у вас есть _selectedRange и другие, которые могут быть использованы, если вы добавите к нему некоторые категории;)


Обновление для iOS5 и выше:

Теперь UITextField и UITextView соответствуют протоколу UITextInput, поэтому это возможно: )

Выбор последних 5 символов перед кареткой будет таким:

// 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:-5];

// Construct a new range using the object that adopts the UITextInput, our textfield
UITextRange *newRange = [textField textRangeFromPosition:newPosition toPosition:selectedRange.start];

// Set new range
[textField setSelectedTextRange:newRange];
31
ответ дан 28 November 2019 в 23:07
поделиться

Swift 5.0

здесь то, как я selecte имя файла Panda от Panda.txt

func textFieldDidBeginEditing(_ textField: UITextField) {
    // if textField.text is `Panda.txt`, offset will be 3
    let offset = String(textField.text!.split(separator: ".").last!).length
    let from = textField.position(from: textField.beginningOfDocument, offset: 0)
    let to = textField.position(from: textField.beginningOfDocument,
                                offset:textField.text!.length - (offset+1) )
    //now `Panda` will be selected
    textField.selectedTextRange = textField.textRange(from: from!, to: to!)
}

-1
ответ дан 28 November 2019 в 23:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: