iOS的Objective-C的UITextFielddate格式

我正在尝试创build一个信用卡处理视图控制器。 我有一个到期date字段,我想将其格式化为MM / YY。

我试图从这里的UITextField格式在xx-xx-xxx中的片段,但它使用NSNumber时使用的过期date有一个领先的0它不起作用。 我search谷歌,也没有出现。 前导零被删除。 如何在用户input时使用UITextField将其设置为MM / YY格式(例如05/16)?

这是可能的,因为Stripe的到期date的UITextField确实在他们的库中。

在这里输入图像说明

我不确定为什么我拒绝投票给一个合法的问题,但我解决了我的问题,以便其他人可以避免问这个问题。

你的类需要符合UITextFieldDelegate才能工作。

我创build了一个基于viewDidLoad函数中的UIControlEventEditingChanged事件的操作。

  [dateUIText addTarget:self action:@selector(dateTextFieldDidChange:) forControlEvents:UIControlEventEditingChanged]; 

这是在月份之后添加“/”时dateTextFieldDidChange函数的样子:

 - (void) dateTextFieldDidChange: (UITextField *)theTextField { NSString *string = theTextField.text; if (string.length == 2) { theTextField.text = [string stringByAppendingString:@"/"]; } else if (string.length > 5) { theTextField.text = [string substringToIndex:5]; } } 

当用户尝试退格以对月份进行任何调整时,上述function将不允许使用该function,因此需要协助:

 - (BOOL) textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { if ([string isEqualToString:@""] && textField.text.length == 3) { NSString *dateString = textField.text; textField.text = [dateString stringByReplacingOccurrencesOfString:@"/" withString:@""]; } return YES; }