How do I give a UITextView focus programmatically?

前端 未结 6 1438
[愿得一人]
[愿得一人] 2020-12-25 09:19

So I want to bring in a modal view controller that has a UITextView in it and I want the keyboard to automatically popup and the UITextView have focus.

I found a way

相关标签:
6条回答
  • 2020-12-25 09:58

    That does seem somewhat hackish.

    The Cocoa Touch terminology for 'having focus' is 'first responder' and UITextViews will display their keyboards when they are the first responder. I can think of several techniques to make the UITextView become the first responder, but the easiest is probably in your view controller's viewWillAppear or viewDidAppear methods:

    - (void)viewWillAppear:(BOOL)animated
    {
    
        [myTextView becomeFirstResponder];
    
        [super viewWillAppear:animated];
    }
    
    0 讨论(0)
  • 2020-12-25 10:02
    [textView becomeFirstResponder];
    
    0 讨论(0)
  • 2020-12-25 10:03

    When you want the focus to be that particular TextView on loading a ViewController, you can place the textView.becomeFirstResponder() in the ViewDidLoad overrode func as below:

     override func viewDidLoad() {
        super.viewDidLoad()
    
    textView.becomeFirstResponder()
    
    }
    

    I find this works without any errors

    0 讨论(0)
  • 2020-12-25 10:08

    On Xamarin Forms Custom Render:

       protected override void OnElementChanged(ElementChangedEventArgs<Entry> e)
        {
            base.OnElementChanged(e);
    
            if (Control != null)
            {
                Control.BecomeFirstResponder();
            }
        }
    
    0 讨论(0)
  • 2020-12-25 10:13

    Swift:

    textView.becomeFirstResponder()
    
    0 讨论(0)
  • 2020-12-25 10:21

    Since UITextView inherits from UIResponder (indirectly, it actually inherits from UIScrollView, which inherits from UIView which then inherits from UIResponder) you can call the -becomeFirstResponder method on your text field, which will cause it to become the first responder and begin editing:

    [textView becomeFirstResponder];
    
    0 讨论(0)
提交回复
热议问题