【问题标题】:UITextField input validation in iOS 7iOS 7 中的 UITextField 输入验证
【发布时间】:2013-10-22 02:49:50
【问题描述】:

iOS 7 中处理文本输入字段验证的适当方式是什么? 有没有显示对话框的替代方法?

我对 iOS 应用没有太多经验(我更喜欢 android),我希望它类似于 android:

mEditText.setError("Error string");

我找到的最接近的东西是 library,但我想知道 iOS 中是否有原生的东西(如果可能,我想避免使用第 3 方库)。

提前致谢。

【问题讨论】:

    标签: validation input uitextfield ios7


    【解决方案1】:

    没有标准或特定的“iOS7”文本验证方式。但是,您可以使用UITextfield 自己的委托方法(如

    )来实现自己的“验证框架”(类似于您在添加的链接中指向的那个)
    • - (void)textFieldDidEndEditing:(UITextField *)textField,表示用户已完成编辑(例如,当他关闭键盘或按下“完成”按钮时)
    • - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string,在 UITextField 中输入新字符时触发。

    根据这些事件,您可以使用 UITextFieldtext 属性评估当前的 NSString,并相应地调整您的 UI。

    【讨论】:

    • 也许我的问题不够清楚,但我的问题不在于 when 进行验证,而是如何响应不安全的验证(因此带有@987654327 的 android 示例@)。
    【解决方案2】:

    我不知道你提到的 android 示例这么简单。但是,一旦您根据@Herre_84 确定某个值无效,您就可以做一些不涉及弹出警报对话框的事情。

    一种常见的做法是使用UITextField 的覆盖视图来指示该值有误。在UITextField 的左侧和右侧都有可供您使用的叠加视图。您可以在其中放置图像以指示输入的有效状态,如this question 的答案。更多详情在the official Apple documentation

    您可以做的另一件不太常见的事情是使用UITextFieldattributedText 属性来指示文本无效。例如,您可以将不正确的文本设置为不同的颜色。 TSValidatedTextField 演示了如何做到这一点。

    最后,您可以使用一个完全独立的视图(可能出现在您的UITextField 附近),并使用有效性信息进行更新。您必须连接两个视图,可能通过共享的父视图控制器来实现它们之间的通信。

    【讨论】:

      猜你喜欢
      • 2014-02-12
      • 2023-03-30
      • 2013-02-14
      • 1970-01-01
      • 1970-01-01
      • 2013-10-01
      • 2017-09-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多