首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >只允许UITextField输入数字

只允许UITextField输入数字
EN

Stack Overflow用户
提问于 2012-10-18 07:09:51
回答 13查看 101.7K关注 0票数 84

iPad没有像iPhone/iPod那样的“数字键盘”。

我想知道如何限制用户的键盘只接受从0到9的值。

我可以想象使用UITextField的"shouldChangeCharactersInRange“,但我不知道实现它的最佳方式。

EN

Stack Overflow用户

发布于 2014-11-11 02:41:44

我已经修改了@iDev的答案,使其适用于数字和".":

代码语言:javascript
运行
复制
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
     // Check for non-numeric characters
     NSUInteger lengthOfString = string.length;
     for (NSInteger index = 0; index < lengthOfString; index++) {
         unichar character = [string characterAtIndex:index];
         if ((character < 48) && (character != 46)) return NO; 
         // 48 unichar for 0, and 46 unichar for point
         if (character > 57) return NO; 
         // 57 unichar for 9
     }
     // Check for total length
     NSUInteger proposedNewLength = textField.text.length - range.length + string.length;
     if (proposedNewLength > 6)
         return YES;
     return YES; 
 }
票数 0
EN
查看全部 13 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12944789

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档