Проверка правильности ввода текстового поля (double, length2) - PullRequest
0 голосов
/ 27 октября 2019

Я работаю над swift / xcode и хочу проверить правильность ввода в текстовых полях. У меня всего 5 текстовых полей, каждое из которых имеет длину 2. Как мне это сделать?

(редактировать: преобразование текстового поля в двойное число было опечаткой ..)

Ответы [ 2 ]

0 голосов
/ 27 октября 2019

Когда речь идет об ограничении textField ввода только для чисел, обратитесь к этому ответу здесь, он поможет вам: https://stackoverflow.com/a/31812151/12278515.

Что вы ищете в настройке textField, так этоэто, но, пожалуйста, прочитайте весь связанный ответ, чтобы получить представление о том, как работают UITextField делегаты

func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {        
    return Double(string) != nil
}

. Вы можете проверить количество textField символов, используя следующее: textField.text.count.

Итак, условие, которое вы ищете, выглядит следующим образом:

if textField.text.count != 2 {
    // Here comes the action, if the textFied lenght is not 2 characters
}

Надеюсь, это поможет

0 голосов
/ 27 октября 2019

Я думаю, что вы хотите сослаться на созданную вами строку, а не объявлять новую переменную.

Попробуйте это

let val1String = course1.text
let val1 = NSString(string: val1String).doubleValue

Параметр для NSString ищет строку. Вы создали строку в предыдущей строке, поэтому используйте ее.

также, обратите внимание:

let s = "123"
print ("\(NSString(string: s).doubleValue)")
\\ prints 123.0
let s2 = "abc"
print ("\(NSString(string: s2).doubleValue)")
\\ prints 0.0

См. Это: Swift - Как преобразовать строку в двойную

if let cost = Double(textField.text!) {
    print("The user entered a value price of \(cost)")
} else {
    print("Not a valid number: \(textField.text!)")
}

Затем просто убедитесь, что cost находится в диапазоне 0 ... 99 или 0 .. <100 </p>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...