UITextField使部分不可编辑

时间:2014-07-18 19:31:08

标签: objective-c uitextfield

如何让UITextField的一部分不可编辑?我的意思是我为文本字段设置了一个默认值,我只希望用户能够编辑他们添加的部分。这可能吗?如果是这样,请告诉我如何做到这一点。

2 个答案:

答案 0 :(得分:0)

查看UITextFieldDelegate

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
    // get textField.text string using range and compare it to your default.
    // return no if you don't want it to change
}

或者使用"默认"值,请考虑使用占位符值,当它们键入任何内容时将被清除,如果将其留空,则可以接受占位符值作为默认值。

答案 1 :(得分:0)

@property (nonatomic) NSString *myString;    

- (void)viewDidLoad
{
    [super viewDidLoad];
    self.myString = @"whatever";
    self.myTextField.text = self.myString;
    self.myTextField.delegate = self;
}

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
     // Avoid user replacing characters from myString
     if (range.location < [self.myString length])
     {
         return NO;
     }
     // Allow adding or replacing new characters after myString
     return YES;
}