Изменить поведение UITextField - PullRequest
       1

Изменить поведение UITextField

3 голосов
/ 15 сентября 2011

Каков наилучший способ отключить клавишу возврата «UITextField», если в области ввода нет текста? UITextField со свойством enablesReturnKeyAutomatically, установленным в YES, разрешает возврат ключа, даже если введены только пробелы, но я бы хотел включить ключ возврата только тогда, когда текст не пустой. какие-либо предложения?

Ответы [ 2 ]

2 голосов
/ 15 сентября 2011

Я не знаю, как можно переопределить поведение свойства ввода текста, но вы можете использовать метод делегата текстового поля textField:shouldChangeCharactersInRange:replacementString:, чтобы пользователь не мог вводить пробелы в пустой строке. Это предотвратит добавление любого пробельного текста, поэтому ключ возврата не должен быть включен.

Если вас не беспокоит то, что ключ возврата действительно включен , вы можете использовать textFieldShouldReturn:, снова один из методов делегирования текстового поля.

0 голосов
/ 03 декабря 2015

Я бы сделал что-то вроде следующего

  1. Создайте расширение для String и добавьте метод обрезки (это также пригодится в других сценариях, поэтому я предлагаю расширение.

    public func trim() -> String {
      return  stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceCharacterSet())
    }
    
  2. Сделайте ваш класс делегатом UITextFieldDelegate и добавьте следующую функцию

    func textFieldDidChange(textField: UITextField) {
      textField.text = textField.text.trim()
    }
    
  3. Установите для делегата вашего UITextField значение self.

...