我试图在UITextField中禁用默认的长按手势识别器,以便我可以添加自己的长按手势识别器。我这样做的代码如下:
for recognizer:UIGestureRecognizer in textField.gestureRecognizers as! [UIGestureRecognizer] {
if recognizer is UILongPressGestureRecognizer{
recognizer = myCustomRecognizer
}
}
但这给了我一个运行时错误,说它在解开一个可选值时发现nil,这让我觉得它没有找到任何手势识别器?这是正确的方法吗?
任何建议都将不胜感激。
答案 0 :(得分:0)
我确信UITextField
未在内部实施中使用手势识别器,而是直接处理来自UIControl
methods的触摸事件。
因此,我认为您有一些选择,因为您仍尝试使用相同的触控行为,我建议您查看UITextFieldDelegate
methods并查看是否无法覆盖这样的行为。具体来说,是textFieldShouldBeginEditing:方法。
如果这不允许您完成您正在尝试的内容,则必须创建UITextField
的自定义子类并自行实现触摸事件。这应该只是作为最后的手段尝试。
即使你是子类,你仍然可以通过在你覆盖的每个方法中调用super来使用父类行为。