2015-02-27 1 views
0

Я заканчиваю простое приложение iOS8, написанное в SWIFT, которое включает в себя числа, вводимые время от времени. Иногда числа должны быть десятичными, и я заметил, что если я не буду вводить 0 перед десятичной точкой, десятичная кнопка не будет работать, и в текстовое поле ничего не будет введено.iOS - Как ввести десятичное число в текстовое поле без первого ввода 0?

Я думал только о том, что текстовое поле начиналось с 0, таким образом, пользователь может просто начать вводить в десятичное число без необходимости сначала вводить 0. Я надеюсь, что есть простая функция, которую я могу использовать для решения этой проблемы.

Благодаря

+0

Опишите, как настроено текстовое поле. Как вы вынуждаете текстовое поле принимать только числа? Вы используете делегата? Если да, покажите нам код. –

+0

Спасибо за ответ, я попытаюсь объяснить, а также могу. Каждый из моих UITextFields является IBOutlets в моем ViewController. Таким образом, IBOutlets в моем коде называются firstTextLabel, secondTextLabel и т. Д. Затем у меня есть «if statement», где я делаю следующее. если пусть firstVal = self.firstTextLabel.text? .toDouble() {// здесь используется формула преобразования} else {firstTextLabel.text = "" secondTextLabel.text = ""}}. Для функции toDouble() я использовал следующий код. extension String { func toDouble() -> Double? { return NSNumberFormatter(). NumberFromString (self) ?. doubleValue } } – esx0001

+0

Не вставляйте код в комментарий. Измените свой вопрос и вставьте код там. Убедитесь, что вы отделили каждую строку кода дополнительными четырьмя пробелами, чтобы веб-сайт правильно отформатировал ее. –

ответ

-1

следующие работы:

extension String { 
    func toDouble() -> Double? { 
     let fmt = NSNumberFormatter() 
     return fmt.numberFromString(self)?.doubleValue 
    } 
} 

, а затем в контроллере представления:

@IBOutlet weak var textField: UITextField! 

@IBAction func convert(sender: AnyObject) { 
    if let d = textField.text.toDouble() { 
     println("Got a double \(d)") 
    } else { 
     println("Not a double \(textField.text)") 
    } 
} 

Если это не работает для вас, создавать больше кода, проблема в другом месте ,

Смежные вопросы