set UITextField as non editable - Objective C
[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)
精彩评论