Question

I'm wondering how to disable the inputview of a UITextfield. Setting textField.inputView = nil; or [textField setInputView:nil] in ShouldBeginEditing doesn't do anything, and using the userInteraction property removes the ability to interact with the field. Ideally, I'd like to remove both the cursor and the keyboard while still being able interact with and switch between textfield methods, using ShouldBeginEditing and ShouldEndEditing. Is there any way to accomplish this?

Was it helpful?

Solution

You should do this:

myTextField.inputView = UIView.new; //Empty UIView

Setting it to nil just means the default keyboard is used.

To get rid of the caret, subclass the UITextField and override caretRectForPosition:

- (CGRect) caretRectForPosition:(UITextPosition*)position
{
    return CGRectZero;
}

OTHER TIPS

Try this :

-(BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
  return NO;  // Hide both keyboard and blinking cursor.
}

or

-(void)textFieldDidBeginEditing:(UITextField *)textField{
  [textField resignFirstResponder]; // hides keyboard
}
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top