Question

I want to create a view that consists solely of a UITextView. When the view is first shown, by default, I'd like the keyboard to be visible and ready for text entry. This way, the user does not have to touch the UITextView first in order to begin editing.

Is this possible? I see the class has a notification called UITextViewTextDidBeginEditingNotification but I'm not sure how to send that, or if that is even the right approach.

Was it helpful?

Solution

to accomplish that just send the becomeFirstResponder message to your UITextField, as follows (assuming you have an outlet called textField, pointing to the field in question):

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    [textField becomeFirstResponder];
}

OTHER TIPS

In Swift

To automatically show the keyboard, to the following:

override func viewDidLoad() {
    super.viewDidLoad()

    // show keyboard
    textView.becomeFirstResponder()
}

Notes

  • This assumes that the text view is editable.
  • Works for both UITextView and UITextField
  • To hide the keyboard use textView.resignFirstResponder()

Following worked fine for me using Swift

override func viewDidAppear(animated: Bool) {
    super.viewDidAppear(animated)

    // Show keyboard by default
    billField.becomeFirstResponder()
}

Key is to use the viewDidAppear function.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top