开发者

set UITextField as non editable - Objective C

开发者 https://www.devze.com 2023-01-08 06:56 出处:网络
[Number.editable = NO]; [Number resignFirstResponde开发者_Python百科r]; [Password.editable = NO]; [Password resignFirstResponder];
    [Number.editable = NO];
    [Number resignFirstResponde开发者_Python百科r];
    [Password.editable = NO];
    [Password resignFirstResponder];

I am getting the error

Request for member 'editable' in something not a structure or union

:S

Thanks


Firstly, the [...] aren't needed if you're not sending a message.

Number.editable = NO;
[Number resignFirstResponder];
Password.editable = NO;
[Password resignFirstResponder];

But this is not the cause of error. The .editable property is only defined for UITextView, not UITextField. You should set the .enabled property for a UITextField (note that a UITextField is a UIControl).

Number.enabled = NO;
...


Also, you can use the delegate methods.

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
{
  return NO;
}

That would do the trick, I prefer this method over setting textField.enabled = YES when it's likely that the ability to edit will change during the lifecycle of the app.


textField.userInteractionEnabled = NO;

Hope this helps..


Returning NO from shouldChangeCharactersInRange would be better choice because if text is longer than the textfield width, then above solution will give problem, because user won't be able to see all text(i.e. text hidden beyond the text field width)

0

精彩评论

暂无评论...
验证码 换一张
取 消