iOS UITextField 密码框有这个特性:当密码框有text时,聚焦到密码框,输入新内容,会自动删除先前内容填入新内容
比如 密码框的为123456,当点击密码框,输入7时,密码框会只留下7我现在需要在旧text(即123456)删除后,修改userDefaults。在哪个事件或代理里写比较好呢?

解决方案 »

  1.   

    密码难道不是应该是完成某些验证之后再写入userdefaults 吗?输完就存?
      

  2.   

    我是要删之前记录的。记录的密码  一编辑  就置为""。我现在就是 在
    - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
    里,判断flag来置为"",但总觉得不完美。
      

  3.   

    我是要删之前记录的。记录的密码  一编辑  就置为""。我现在就是 在
    - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
    里,判断flag来置为"",但总觉得不完美。
    其实我只要:
    判断密码框第一次修改(不只是聚焦)  
    用flag和- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string 可以实现。有没有更好的方法呢?
      

  4.   

    我比较不喜欢系统自动清除密码,于是就写了这个:https://github.com/zhangao0086/DKTextField。关键是在没有任何通知的情况下清除的。