嵌套UITextFields的UITextFieldDelegate没有被调用
-
27-10-2019 - |
题
我有一个UIView
(MyView)的子类,该子类具有一些UITextField
作为子视图。MyView实现了UITextFieldDelegate
协议,以便在单击文本字段时得到通知。运行良好。现在,我需要将文本字段放置在某种“容器”中,以便能够通过UIView
动画淡入和淡出此容器(及其所有子级)。因此,我创建了一个UIView(MySubview),使其成为MyView的子视图,并将所有文本字段置于其中。动画效果很好,但不再调用UITextFieldDelegate
。我认为这是因为文本字段不再是MyView的直接子代。
还有其他方法可以解决这个问题吗?
更新
我做了一个小版本的代码,也许这有助于发现问题: 通用标签
解决方案 2
我将回答我自己的问题,以防万一有人碰到同样的问题-很难想象有人犯了这样愚蠢的错误:
我正在将标签容器的框架设置为self.bounds。但是MyViewController正在使用CGRectZero框架创建MyView!在添加容器的同时,我做了该更改以支持动画。因此,我认为该问题与视图层次结构有关。真可惜!!!
无论如何,感谢所有帮助者,尤其是Madhumal Gunetileke,他的回答使我朝着不同的方向观看。
其他提示
然后,我尝试写出您的代码,它对我来说很有效。您可以尝试更改以下几项;
- 之所以无法编辑textField,是因为您向textFieldShouldBeginEditing方法返回了NO。将其更改为是。
- 尝试将您的textField定位(如果可能的话),使其比所提供的略低。另外,无论如何,20px对于适当的textField来说太小了,至少应设为40px。如果在手机中打开状态栏,则位于0,0处的20px textField可能会完全隐藏。
- 为您的textField设置borderStyle。据我所知,这对于textField的显示和良好交互非常重要。(例如,textField.borderStyle= UITextBorderStyleRoundRect)
手指交叉!:)
不隶属于 StackOverflow