添加无法在ios中的文本字段中编辑的加号(目标c)

时间:2014-12-27 20:42:18

标签: ios objective-c uitextfield textfield

我需要在故事板上创建一个带有符号的文本字段,该符号将显示但不可编辑。

例如,我们有一个电话号码国家代码+44。用户可以编辑44但是" +"无法删除。

提前谢谢。

2 个答案:

答案 0 :(得分:7)

我建议将“+”设置为UILabel中的文本,并将该标签设置为文本字段的leftView。例如,在Objective-C中:

UILabel *plusLabel = [[UILabel alloc] init];
plusLabel.text = @" +";
[plusLabel sizeToFit];
self.textField.leftView = plusLabel;
self.textField.leftViewMode = UITextFieldViewModeAlways;

在斯威夫特:

let plusLabel = UILabel()
plusLabel.text = " +"
plusLabel.sizeToFit()
textField.leftView = plusLabel
textField.leftViewMode = UITextFieldViewMode.Always

答案 1 :(得分:1)

您可以使用- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string委托上的UITextField方法来确定是否应允许对文本字段中的字符进行特定更改。使用该方法,您可以通过- (NSString *)stringByReplacingCharactersInRange:(NSRange)range withString:(NSString *)replacement

组合建议的最终字符串
NSString *finalText = [textField.text stringByReplacingCharactersInRange:range withString:string];

然后您可以将最终文本字符串与空字符串进行比较,如果它们相同,则返回NO。这假设您的文本字段的文本以“+”开头。

if ([finalString isEqualToString:@""]) {
    return NO;
} else {
    return YES;
}