我希望UITextField
中的某些文字不可编辑。例如,我想保留“.com”之类的内容,在此“.com”之前添加用户的输入。
答案 0 :(得分:2)
尝试使用此方法
(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
在内部使用类似的内容,当用户尝试编辑最后三个字符时,它将返回NO:
if (string.length < 3) {
NSLog(@"NO -> string.length < 3");
return NO;
}
if (range.location > textField.text.length-3) {
NSLog(@"NO");
return NO;
}
return YES;
答案 1 :(得分:0)
跟踪每个角色的变化。如果编辑了“.com”的任何部分,请以编程方式将其还原。确保向用户提供“.com”无法编辑的某种指示。
答案 2 :(得分:0)
当用户返回UITextField时:
NSString *oldString = yourTextField.text;
NSString *newString = [oldString stringByAppendingString:@".com"];
yourTextField.text = newString;
答案 3 :(得分:0)
您可以采取以下两种方式:
NSString *suffixStr = @".com";
1.
NSString *newStr = [yourStr stringByAppendingString:suffixStr];
2.
NSString *newStr = [NSString stringWithFormat:@"%@%@", yourStr, suffixStr];