2

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

4

4 回答 4

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;
于 2013-07-24T19:53:14.747 回答
1

当用户返回 UITextField 时,请执行以下操作:

 NSString *oldString = yourTextField.text;
 NSString *newString = [oldString stringByAppendingString:@".com"];
 yourTextField.text = newString;
于 2013-07-24T19:39:45.143 回答
0

跟踪每个字符的变化。如果“.com”的任何部分被编辑,以编程方式恢复它。确保向用户表明“.com”不可编辑。

于 2013-07-24T19:39:38.970 回答
0

您可以通过以下两种方式进行操作:

NSString *suffixStr = @".com";
1.
NSString *newStr = [yourStr stringByAppendingString:suffixStr];
2.
NSString *newStr = [NSString stringWithFormat:@"%@%@", yourStr, suffixStr];
于 2013-07-24T19:52:40.433 回答