ios - 不允许用户在 UITextField 中输入数字 1 作为第一位数字

标签 ios iphone objective-c uitextfield nsrange

我有一个 UITextField,用户可以在其中输入他们的电话号码。我需要电话号码采用以下格式:5567289223,而不是像这样在开头多加一个 1:15567289223。

我已经设置了一个 if 语句,所以如果数字大于 10 位或小于 10 位,它将引发错误。

我不知道如何解决的唯一最后一个问题是,如果用户尝试在电话号码的开头添加一个额外的 1。

我需要设置一个 if 语句,这样如果电话号码中的第一个字符是“1”,我们就会抛出一个错误,或者更简单的解决方案是使用 shouldChangeCharactersInRange 这样如果这是他们在 UITextField 中输入的第一个数字,那么它就不能是 1。

早先有人给了我这个解决方案来控制允许将哪些字符输入到 UITextField 中:https://stackoverflow.com/a/22265084/3344977

我一直在尝试修改它,使其不允许数字“1”成为输入到 UITextField 中的第一个数字,但我无法让它正常工作。

非常感谢任何帮助。

最佳答案

我已经根据你的需要修改了你要使用的例子,你可以看看

-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
if(textField==self.testTextField&&range.location==0)
{
    if ([string hasPrefix:@"1"])
    {
        return NO;
    }
}

return YES;
}

关于ios - 不允许用户在 UITextField 中输入数字 1 作为第一位数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22266042/

相关文章:

ios - ViewController 未使用自定义类更新 UIView

ios - 无法在 Apple 开发人员中将帐户添加为角色管理员

ios - 如何使用 swift 将相同的背景图像添加到我的 ios 应用程序中的所有 View ?

iphone - 当应用程序处于工作模式时,UILocalNotification 不会触发

ios - 将 UIActivityIndi​​catorView 添加到 UINavigationBar 上的 UIBarButtonItem (iOS)

ios - 将应用程序更新到 iOS 7 时,奇怪的 Storyboard会推送 segue。

iphone - 方向改变触发的方法

ios - 如何在设备屏幕因不活动而关闭时/之前立即执行方法?

ios - 区分 iPhone 5、6 和 6 Plus 的尺寸类别?

iphone - Google AdMob 不显示广告