我目前正在 xcode 中格式化我的文本字段,每 5 个字符添加一个连字符。但是我遇到了很多麻烦,我目前想检查我的 textfields.text.length 然后一旦长度达到 23 个字符,提交按钮就可以按下。到目前为止,如果用户输入 23 个字符并且如果用户决定返回并删除一个字符,那么按钮是可按下的,这在我遇到问题的地方有效,因为我不知道如何更新新的文本长度,所以没有什么可以更新的抓住数字键盘的删除按钮...有人知道该怎么做吗?
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
NSString *separator = @"-";
int seperatorInterval = 5;
NSString *originalString = [regTextField.text stringByReplacingOccurrencesOfString:separator withString:@""];
if (![originalString isEqualToString:@""] && ![string isEqualToString:@""]) {
NSString *lastChar = [regTextField.text substringFromIndex:[regTextField.text length] - 1];
int modulus = [originalString length] % seperatorInterval;
[self validateTextFields];
if (![lastChar isEqualToString:separator] && modulus == 0) {
regTextField.text = [regTextField.text stringByAppendingString:separator];
}
}
[self validateTextFields];
return YES;
}
-(IBAction) validateTextFields {
if (regTextField.text.length >= 22){
[submitButton setEnabled:YES]; //enables submitButton
}
else {
[submitButton setEnabled:NO]; //disables submitButton
}
}