UItextField限制用户在ipad上输入仅限数字的IOS应用程序
我正在为Ipad开发一个应用程序。我正在设计一个忘记密码屏幕,允许用户输入UItextField限制用户在ipad上输入仅限数字的IOS应用程序,ios,ipad,keyboard,Ios,Ipad,Keyboard,我正在为Ipad开发一个应用程序。我正在设计一个忘记密码屏幕,允许用户输入UITextField的密码。根据设计,密码只允许数字输入。我可以在Iphone中将uitextfield键盘类型设置为phonepad,但该选项似乎不适用于Ipad(Ipad始终显示完整的键盘布局)。我们如何才能为Ipad应用程序实现只有数字的键盘 我必须设计自己的键盘布局吗? 任何帮助都将不胜感激。谢谢 键盘类型并不决定textfield接受何种输入,即使您使用仅显示数字的自定义键盘,用户也可以始终粘贴某些内容或使用外
UITextField
的密码。根据设计,密码只允许数字输入。我可以在Iphone中将uitextfield
键盘类型设置为phonepad
,但该选项似乎不适用于Ipad(Ipad始终显示完整的键盘布局)。我们如何才能为Ipad应用程序实现只有数字的键盘
我必须设计自己的键盘布局吗?
任何帮助都将不胜感激。谢谢 键盘类型并不决定textfield接受何种输入,即使您使用仅显示数字的自定义键盘,用户也可以始终粘贴某些内容或使用外部硬件键盘。
为此,您需要观察输入,例如,通过成为UITextFieldDelegate,然后:
swift中的示例:
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
}
这将防止任何非数字字符被添加到文本字段。键盘类型不决定文本字段接受哪种类型的输入,即使您使用只显示数字的自定义键盘,用户也可以始终粘贴某些内容或使用外部硬件键盘。
为此,您需要观察输入,例如,通过成为UITextFieldDelegate,然后:
swift中的示例:
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
}
这将防止任何非数字字符被添加到文本字段。iPad上没有内置的数字键盘(电话/pin)
如果你想在iPad上使用,你需要实现自己的键盘
有很多例子:
iPad上没有内置的数字键盘(电话/pin)
如果你想在iPad上使用,你需要实现自己的键盘
有很多例子:
是的,我面对的是同样的iPad,因此我使用了这个:
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
// to avoid any other characters except digits
return string.rangeOfCharacter(from: CharacterSet(charactersIn:"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$%^&*()-=_+`~[{]}|\\: ;\"/?>.<,'")) == nil
}
func textField(textField:UITextField,shouldChangeCharacters范围:NSRange,replacementString:string)->Bool{
//避免使用除数字以外的任何其他字符
返回string.rangeOfCharacter(from:CharacterSet(charactersIn:“abcdefghijklmnopqrstuvwxyzabefghijklmnopqrstuvwxyz!@$%^&*()-=\+`~[{]}\\:;“/?>。是的,我在iPad上面对相同的字符,因此我使用了这个:
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
// to avoid any other characters except digits
return string.rangeOfCharacter(from: CharacterSet(charactersIn:"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$%^&*()-=_+`~[{]}|\\: ;\"/?>.<,'")) == nil
}
func textField(textField:UITextField,shouldChangeCharacters范围:NSRange,replacementString:string)->Bool{
//避免使用除数字以外的任何其他字符
返回string.rangeOfCharacter(from:CharacterSet(charactersIn:“abcdefghijklmnopqrstuvwxyzabefghijklmnopqrstuvwxyz!”@$%^&*()-=\+`~[{]}\\\:;\”/?>。感谢您的帮助。ipad应用程序中的键盘布局。我们可以更改默认布局(带有所有字符、数字符号的布局)吗?LêKhánhVinh iPad没有像iPhone那样的十进制布局,我看到许多使用PIN码的应用程序为此绘制了自己的键盘。你知道任何库或示例,以便我们可以按照它们来实现iPad应用程序的数字键盘吗?@LêKhánhVinh查看一些选项,从未尝试过。谢谢你的帮助。谢谢你的帮助ipad应用程序中键盘的ut。我们可以更改默认布局(带有所有字符、数字符号的布局…)?LêKhánhVinh iPad没有像iPhone那样的十进制布局,我看到许多使用PIN码的应用程序为此绘制了自己的键盘。你知道任何库或示例,以便我们可以按照它们来实现iPad应用程序的数字键盘吗?@LêKhánhVinh查看一些选项,从未尝试过。