【发布时间】: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