【问题标题】:How do I give a UITextView focus programmatically?如何以编程方式赋予 UITextView 焦点?
【发布时间】:2010-11-02 13:04:40
【问题描述】:

所以我想引入一个包含 UITextView 的模态视图控制器,并且我希望键盘自动弹出并且 UITextView 具有焦点。

我找到了一种方法来完成以下操作:

textView.editable = YES;
textView.editable = NO;

这对我来说似乎很老套,还有其他方法吗?

【问题讨论】:

    标签: ios objective-c cocoa-touch uikit


    【解决方案1】:

    由于UITextView 继承自UIResponder(间接地,它实际上继承自UIScrollView,后者继承自UIView然后 继承自UIResponder)您可以调用@987654326 @ 文本字段上的方法,这将使它成为第一响应者并开始编辑:

    [textView becomeFirstResponder];
    

    【讨论】:

      【解决方案2】:

      这确实有点骇人听闻。

      “有焦点”的 Cocoa Touch 术语是“第一响应者”,UITextViews 将在他们是第一响应者时显示他们的键盘。我可以想到几种使 UITextView 成为第一响应者的技术,但最简单的可能是在您的视图控制器的 viewWillAppear 或 viewDidAppear 方法中:

      - (void)viewWillAppear:(BOOL)动画 { [myTextView 成为FirstResponder]; [超级viewWillAppear:动画]; }

      【讨论】:

        【解决方案3】:
        [textView becomeFirstResponder];
        

        【讨论】:

          【解决方案4】:

          斯威夫特:

          textView.becomeFirstResponder()
          

          【讨论】:

            【解决方案5】:

            当您希望在加载 ViewController 时将焦点放在特定的 TextView 上,您可以将 textView.becomeFirstResponder() 放在 ViewDidLoad 覆盖函数中,如下所示:

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

            我发现这没有任何错误

            【讨论】:

              【解决方案6】:

              在 Xamarin 表单自定义渲染上:

                 protected override void OnElementChanged(ElementChangedEventArgs<Entry> e)
                  {
                      base.OnElementChanged(e);
              
                      if (Control != null)
                      {
                          Control.BecomeFirstResponder();
                      }
                  }
              

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2011-12-18
                • 1970-01-01
                • 2017-08-26
                • 1970-01-01
                • 1970-01-01
                • 2016-05-13
                相关资源
                最近更新 更多