如何防止编辑UITextField中的部分文本

时间:2013-07-24 19:34:06

标签: ios objective-c uitextfield

我希望UITextField中的某些文字不可编辑。例如,我想保留“.com”之类的内容,在此“.com”之前添加用户的输入。

4 个答案:

答案 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];