【问题标题】:Swift 5 Custom Textfield Delegate not workingSwift 5 自定义文本字段委托不起作用
【发布时间】:2019-08-18 20:10:18
【问题描述】:

自从我将 Xcode 和项目更新到 Swift 5 后, 我对特定的文本字段有这个非常奇怪的问题。 这些文本字段有一个自定义类以允许对滑动操作做出响应。他们对标准触摸也有特殊的反应。触摸文本字段时,textFieldShouldBeginEditing 函数会抑制键盘升起,而是启动自定义拉出值选择菜单。 在更新之前,一切都运行良好,每当我启动 Xcode(一两天后)并加载我的应用程序时,这些字段的 textFieldShouldBeginEditing 永远不会被调用!

治愈它们的方法(可笑地)是使用具有这些自定义文本字段之一的每个视图控制器 - 并对页面进行单笔编辑。 然后,当我重新加载时,该特定视图上的文本字段又好了。

但是在我重新加载应用程序几天后,问题再次发生。 而且我似乎无法仅通过关闭 Xcode 甚至我的计算机来复制该问题。似乎它必须关闭一段时间或一些随机的时间。 ...我不知道是什么原因造成的。

还有一点 - 自定义选择窗格的 IBOutlets 位于所有这些视图控制器的父类上。 将所有父代码分发到所有子视图控制器需要大量编写。

func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool {
    var boolVal = true
    switch textField.tag {
    case 11: boolVal = false; launchSelection(textField)
    case 12: boolVal = false; launchSelection(textField)
    default: boolVal = true; shutThatStupidSideBar()
    }
    textFieldTag = textField.tag
    return boolVal
}
func launchSelection(_ tf:UITextField) {
    selectionPane.textfield = tf
    switch tf.tag {
    case 11: selectionPane.tableData = lm.retreiveList("provider")                                //11 = Owner
    case 12: selectionPane.tableData = lm.retreiveList("\(currentSettings.defUnitsStrand)GaugeStrand") //12 = Strand Gauge
    default: break
    }
    toggleSideBar()
}

【问题讨论】:

    标签: ios swift delegates textfield


    【解决方案1】:
    1. 在情节提要中检查UITextField 代表UIViewController
    2. UITextFieldDelegate 添加到 viewController 代码中,如下所示:

      class ViewController: UIViewController, UITextFieldDelegate

    3. 使用此示例代码:

      func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool {
          print("Test")
          return true
      }
      

    【讨论】:

    • 全部覆盖。而且我已经做了很多测试——当问题发生时逐行检查。 'textFieldShouldBeginEditing' 中没有任何内容运行。它被绕过了;就像我认为的许多其他文本字段功能一样。但是所有的委托代码都已经到位。记住。这只发生在几天后我第一次加载我的应用程序时。当我以任何方式编辑 View Controller 页面时(例如添加一个空格),该页面的问题又消失了!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-07
    • 2019-01-31
    • 1970-01-01
    • 1970-01-01
    • 2015-05-10
    • 1970-01-01
    相关资源
    最近更新 更多