Свифт 3
На основании принятого ответа в Swift 3 должно работать следующее:
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
let newString = NSString(string: textField.text!).replacingCharacters(in: range, with: string)
return true
}
Примечание
И String
, и NSString
имеют методы, называемые replacingCharacters:inRange:withString
. Однако, как и ожидалось, первый ожидает экземпляр Range
, а второй ожидает экземпляр NSRange
. Метод делегата textField
использует экземпляр NSRange
, поэтому в этом случае используется NSString
.