2015-09-27 4 views
0

Я довольно новичок в Swift, и у меня есть проблема, и я не знаю, как ее решить. Итак, у меня есть UITextField, где у меня есть предел в 5 символов в текстовом поле, и у меня нет проблем с остановкой на пятом символе, но проблема в том, что я не могу очистить текст, потому что ясная кнопка, вероятно, считается символ в iOS.Как включить четкое действие кнопки в UITextField (быстрый)?

Любой может помочь мне решить эту проблему?

Вот мой код:

func textField(textField: UITextField, 
      shouldChangeCharactersInRange range: NSRange, 
      replacementString string: String) -> Bool{ 

    if let count = textField.text?.characters.count { 
     if count < 5 { 
      print("\(count)") 
      return true 
     } 
     else { 
      return false 
     } 
    } 
    return true 
} 

Спасибо.

+1

Что вы подразумеваете под «... но проблема в том, что я не могу очистить текст, потому что понятная кнопка, вероятно, считается символом в iOS»? Какой характер? –

+0

, когда у меня есть 5 символов в текстовом поле, и я хочу удалить (стереть) символ, который я ударил по

ответ

1

Вам нужно проверить, какая длина текстового поля будет, а не то, что в настоящее время имеется. Попробуйте следующее:

func textField(textField: UITextField, 
      shouldChangeCharactersInRange range: NSRange, 
      replacementString string: String) -> Bool{ 

    let oldText: NSString = textField.text! 
    let newText: NSString = oldText.stringByReplacingCharactersInRange(range, withString: string) 

    let count = newText.length 
    if count <= 5 { 
     print("\(count)") 
     return true 
    } else { 
     return false 
    } 
} 

Примечание: Я не уверен в Swift. В этом коде может быть синтаксическая ошибка или две.

+0

ваше решение разработано для меня с некоторыми изменениями, спасибо –

+0

Пожалуйста, отредактируйте мой ответ, чтобы исправить любые опечатки, которые я сделал. – rmaddy

+0

return newText.length <= 5 –

5

Вы хотите показать кнопку «X», чтобы очистить текст, не так ли? Затем используйте это:

textField.clearButtonMode = .WhileEditing 
+0

Это не то, о чем вопрос спрашивает. – rmaddy

+0

Кнопка находится на клавиатуре. Img клавиатуры: http://bit.ly/1VhwFjL Я не хочу удалить все слово, только последний символ. Спасибо за ответ. –

+0

Что я хочу., .. да, спасибо. – Mehul