0

I set UITextField.UIKeyboardType is Number, but user can use other company's Keyboard; user can tap "返回"button, and the keyboard changed KeyboardType. KeyboardTypeChanged I want force pop system number keyboard. SystemNumberKeyboard

Suraj Sukale
  • 1,778
  • 1
  • 12
  • 19

2 Answers2

1

You can use UITextField delegate for restricting only number input:

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

  let numbersOnly = NSCharacterSet(charactersInString:"0123456789").invertedSet
  let compSepByCharInSet = string.componentsSeparatedByCharactersInSet(numbersOnly)
  let numberFiltered = compSepByCharInSet.joinWithSeparator("")
  return string == numberFiltered

}
MCMatan
  • 8,623
  • 6
  • 46
  • 85
0

In Objective-C you can do it like this by implementing UITextfield delegate method. Textfield will only allows number to be entered.

-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {

NSCharacterSet *CS = [[NSCharacterSet characterSetWithCharactersInString:@"0123456789"] invertedSet];

NSString *filtered=[[string componentsSeparatedByCharactersInSet:CS] componentsJoinedByString:@""];

return [string isEqualToString:filtered];

}