user393273
user393273

Reputation: 1438

set UITextField as non editable - Objective C

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

I am getting the error

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

:S

Thanks

Upvotes: 12

Views: 33277

Answers (4)

Henit Nathwani
Henit Nathwani

Reputation: 442

textField.userInteractionEnabled = NO;

Hope this helps..

Upvotes: 6

Rajinder Paul
Rajinder Paul

Reputation: 87

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)

Upvotes: 0

makdad
makdad

Reputation: 6460

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.

Upvotes: 18

kennytm
kennytm

Reputation: 523764

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;
...

Upvotes: 28

Related Questions