Форматирование NSTextField для ввода кредитной карты, например (xxxx xxxx xxxx xxxx) [macOS Swift] - PullRequest
0 голосов
/ 23 июня 2019

Я хочу отформатировать NSTextField для ввода с кредитной карты, например (xxxx xxxx xxxx xxxx) Я попробовал следующий код

   func controlTextDidChange(_ obj: Notification){
   let number = card.stringValue.replacingOccurrences(of: " ", with: "")

    if(number.count % 4 == 0){
        card.stringValue = card.stringValue+" "
    }
  }

Это работает нормально, но когда я возвращаюсь назад, у меня возникает проблема.

Есть ли лучший способ отформатировать мою строку

1 Ответ

0 голосов
/ 23 июня 2019

Я использую UITextField, но я считаю, что это очень похоже на NSTextField

// remember to do this
textField.delegate = self

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

    let number = textField.text?.replacingOccurrences(of: " ", with: "")
    if ((number?.count ?? 0) % 4 == 0 && string != "") {
        textField.text! += " "
    }

    return true
}
...