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