iOS强制UITextfield使用系统编号键盘

时间:2016-08-09 11:59:16

标签: ios objective-c iphone

我设置UITextField.UIKeyboardType是数字,但用户可以使用其他公司的键盘; 用户可以点击" 返回"按钮,键盘更改了KeyboardType。 KeyboardTypeChanged 我想要强制弹出系统编号键盘。 SystemNumberKeyboard

2 个答案:

答案 0 :(得分:1)

您可以使用UITextField委托来限制数字输入:

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

}

答案 1 :(得分:0)

在Objective-C中,您可以通过实现UITextfield委托方法来实现。 Textfield只允许输入数字。

- (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];

}