【问题标题】:Swift - Text Field Keyboard Return Key Not Working?Swift - 文本字段键盘返回键不起作用?
【发布时间】:2016-04-02 18:22:44
【问题描述】:

我对 swift 很陌生,并且正在从事一个包含文本字段的项目。当我测试应用程序时,我注意到键盘返回键不起作用,我无法退出键盘。这样做有什么原因吗?返回键的功能可以通过swift实现吗?

另外,我最近正在开发另一个应用程序,我将文本字段的键盘切换到数字键盘,但我意识到数字键盘上没有返回键,所以再次,我似乎无法弄清楚出了如何退出它。我该如何解决这个问题?

对不起,我对苹果设备也很陌生...

【问题讨论】:

  • 请添加一些代码以显示您目前拥有的内容。
  • 你看过resignFirstResponder()吗?
  • 您可以添加一个自定义工具栏作为附件视图,并带有完成按钮到 resignFirstResponder。
  • 您是否设置了该文本字段的委托并在您的类文件中添加了 textFieldShouldReturn 委托方法?
  • 对于数字键盘中的返回按钮,您可以在工具栏中添加按钮。参考show done button on iphone number pad

标签: ios swift uitextfield


【解决方案1】:

请注意,在 Swift 4 中,textFieldShouldReturn 的第一个参数名称似乎必须用下划线省略。否则 Swift 不会调用该函数:

func textFieldShouldReturn(_ textField: UITextField!) -> Bool { // use "_"
    return true;
}

【讨论】:

  • 仍然无法让它工作。我正在使用正确的委托,已将委托分配到 viewDidLoad - 根本没有被解雇。
【解决方案2】:

对于像我这样的其他新手,如果按照 Joe 的出色说明操作后模拟器上仍然没有键盘,请转到模拟器菜单并选择硬件/键盘/切换软件键盘。

【讨论】:

    【解决方案3】:

    你想在你的视图控制器中实现UITextFieldDelegate

    class ViewController: UIViewController,UITextFieldDelegate //set delegate to class
    

    然后在viewDidLoad 中将 textField 委托设置为 self。

    override func viewDidLoad() {
       super.viewDidLoad()
       textField.delegate = self
    }
    

    然后您可以添加这个在按下返回键时运行的方法,以及关闭键盘的resignFirstResponder

    func textFieldShouldReturn(textField: UITextField!) -> Bool {   //delegate method
      textField.resignFirstResponder()
      return true
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-06
      • 2020-12-28
      • 1970-01-01
      • 1970-01-01
      • 2017-08-21
      • 1970-01-01
      相关资源
      最近更新 更多