Ios Swift 5自定义文本字段代理不工作
自从我将我的Xcode和项目更新为Swift 5之后, 我对特定的文本字段有一个不可思议的问题。 这些文本字段有一个自定义类,允许对滑动操作进行响应。它们对标准触摸也有特殊的反应。触摸文本字段时,TextField ShouldBeginediting功能将抑制键盘上升,并启动自定义拉出值选择菜单。 在更新之前,一切都很正常,每当我启动我的Xcode(一两天后)并加载我的应用程序时,这些字段的textFieldShouldBeginEditing永远不会被调用 解决这些问题的方法是(以重复的方式)对每个具有这些自定义文本字段之一的视图控制器进行处理,并对页面进行单笔划编辑。 然后,当我重新加载时,该特定视图上的文本字段再次正常 但在我重新加载应用程序几天后,问题再次出现。 我似乎无法通过关闭Xcode甚至我的电脑来复制这个问题。似乎它必须被关闭一段随机的时间或什么的。 …我不知道这是什么原因 另一点是,自定义选择窗格的IBOutlets位于所有这些视图控制器的父类上。 将所有父代码分发到所有子视图控制器需要大量的编写工作Ios Swift 5自定义文本字段代理不工作,ios,swift,delegates,textfield,Ios,Swift,Delegates,Textfield,自从我将我的Xcode和项目更新为Swift 5之后, 我对特定的文本字段有一个不可思议的问题。 这些文本字段有一个自定义类,允许对滑动操作进行响应。它们对标准触摸也有特殊的反应。触摸文本字段时,TextField ShouldBeginediting功能将抑制键盘上升,并启动自定义拉出值选择菜单。 在更新之前,一切都很正常,每当我启动我的Xcode(一两天后)并加载我的应用程序时,这些字段的textFieldShouldBeginEditing永远不会被调用 解决这些问题的方法是(以重复的方式
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()
}
UITextField
委托给UIViewController
UITextFieldDelegate
,如下所示:
class ViewController:UIViewController、UIExtFieldDelegate
func textField应该开始编辑(\utextfield:UITextField)->Bool{
打印(“测试”)
返回真值
}
UITextField
委托给UIViewController
UITextFieldDelegate
,如下所示:
class ViewController:UIViewController、UIExtFieldDelegate
func textField应该开始编辑(\utextfield:UITextField)->Bool{
打印(“测试”)
返回真值
}
一切都包括在内。我做了很多测试——当问题发生时,逐行检查。“textfield shouldbeginediting”中没有任何内容运行。它的旁路;我想,就像许多其他文本字段函数一样。但所有的委托代码都已准备就绪。记住。只有在几天后第一次加载应用程序时才会发生这种情况。当我以任何方式编辑视图控制器页面时(例如,仅添加一个空间),该页面的问题再次消失!一切都包括在内。我做了很多测试——当问题发生时,逐行检查。“textfield shouldbeginediting”中没有任何内容运行。它的旁路;我想,就像许多其他文本字段函数一样。但所有的委托代码都已准备就绪。记住。只有在几天后第一次加载应用程序时才会发生这种情况。当我以任何方式编辑视图控制器页面时(例如,仅添加一个空间),该页面的问题再次消失!