swiftのtextFieldにdouble値だけしか入力させないように制限する場合、
何かいい方法はございませんでしょうか?
textFieldには”.keyboardType = UIKeyboardType.decimalPad”
を使用すればキーボードタイプの制限をかけれるのは知っているのですが、
こちら、キーボードを変更できるようなアプリでキーボードを変更している場合、
メモ帳など他アプリでそのキーボードのままになっている状態でtextFieldを使用すると指定の
キーボードタイプが適応されないという現象が起きるため、入力制限をかける必要があります。
調べるとこちらのメソッドを使用して
半角英数字のみの制限をかけることに成功しましたが、
ピリオドが打てずに、'2.5'のように打つと'25'のようにtextFieldに記載されてしまいます。
このことを踏まえて何かアイデアや改善策はございませんでしょうか??
func textField(_textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool { if let currentString = _textField.text, let _range = Range(range, in: currentString) { let newString = currentString.replacingCharacters(in: _range, with: string) //backspace不具合解消部分 let char = newString.cString(using: String.Encoding.utf8)! let isBackSpace = strcmp(char, "\b") if (isBackSpace == -92) { print("Backspace was pressed") return true } print(newString) return Int(newString) != nil } else { return false } }
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/03 10:54