Очень хороший RegEx, предложенный на на этом сайте :
(?
Если python имеет метод String Split, он должен работать ...
In Java:
String s = "loremIpsum";
words = s.split("(?<!^)(?=[A-Z])");
С UITextField вы не можете. Но если вы видите заголовки, у вас есть _selectedRange и другие, которые могут быть использованы, если вы добавите к нему некоторые категории;)
Теперь 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];
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!)
}