Ограничение TextField до 1 символа и замена текста без возврата с помощью делегата - PullRequest
0 голосов
/ 27 апреля 2019

У меня есть текстовое поле, в котором я хочу, чтобы пользователи могли выбрать эмодзи в качестве значка. В настоящее время я могу ограничить текстовое поле только одним символом, но я также хочу, чтобы пользователи могли легко менять значок, не нажимая клавишу «Возврат». Любые решения заменить существующий текст новым текстом, сохраняя ограничение в 1 символ.

extension ItemDetailViewController : UITextFieldDelegate {
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {

    if categoryTextField.isEditing {
        let categoryText = categoryTextField.text ?? ""
        guard let stringRange = Range(range, in: categoryText) else { return false }
        let updatedText = categoryText.replacingCharacters(in: stringRange, with: string)
        return updatedText.count <= 1
    } else {
        let oldText = self.textField.text!
        let stringRange = Range(range, in: oldText)!
        let newText = oldText.replacingCharacters(in: stringRange, with: string)
        doneBarButton.isEnabled = !newText.isEmpty
        return true
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...