2016-09-22 30 views
0

我正在为Ipad开发一个应用程序。我正在设计一个忘记密码的屏幕,允许用户输入密码UITextField。按照设计,密码只允许数字输入。我可以在iPhone上设置UITextFiledkeyboardtypephonepad,但该选项似乎不适用于Ipad(Ipad总是显示完整的键盘布局)。我们如何才能实现只有号码的iPad应用程序的键盘?UItextField限制用户在ipad上输入数字IOS应用程序

我必须设计自己的键盘布局吗? 任何帮助是非常感谢。谢谢!

回答

2

即使您使用只显示数字的自定义键盘,用户也可以始终粘贴某些东西或使用外部硬件键盘,但键盘类型并不指定文本字段接受的输入类型。

要做到这一点,你需要观察的输入,例如,通过成为UITextFieldDelegate然后:
例中迅速:

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool{ 
    // non decimal digit character set, better save this as a property instead of creating it for each keyboard stroke 
    let non_digits = NSCharacterSet.decimalDigits.inverted 
    // Find location for non digits 
    let range = string.rangeOfCharacter(from: non_digits) 
    if range == nil { // no non digits found, allow change 
     return true 
    } 
    return false // range was valid, meaning non digits were found 
} 

这将防止任何非数字字符被添加到文本框。

+0

感谢您的帮助。用于iPad应用程序中键盘的布局。我们可以更改默认布局(包含所有字符,数字符号的布局)吗? –

+0

@LêKhánhVinhiPad上没有像iPad那样的小数点布局,我看到许多使用PIN码的应用程序都会为此使用自己的键盘。 –

+0

你知道任何库或例子,以便我们可以按照实现ipad应用程序的数字键盘? –