exp*_*ert 5 uitextfield ios uitextfielddelegate ios6
是否有人注意到按下清除按钮后UITextField调用textFieldDidEndEditing,但text属性仍有旧数据?
我不确定我能在这里提供什么代码示例.如果重要的话,我正在使用故事板.
现在我必须依赖从主窗体的"提交"按钮上的所有编辑控件中获取数据.但理想情况下,我更愿意在textFieldDidEndEditing处理程序中收集数据.
有没有更好的解决方法?
我在iOS 6上.
更新:基本上这是我在表单上的内容
UITextField并UiButton在表格上.resignFirstResponder处理程序来调用键盘UITapGestureRecognizer重现问题的步骤:
textFieldDidEndEditing叫做.财产.text有我输入的价值.都好.textFieldDidEndEditing再次被召唤.但财产.text仍有价值我刚刚删除!textFieldDidEndEditing从未被调用过.我明天将在GitHub上传示例项目.
我遇到了完全相同的问题.在我的情况下,至少,这是由于具有添加UITapGestureRecognizer到self.view(以允许如果窃听的外驳回键盘UITextField)和设置cancelsTouchesInView=NO上的手势识别.我已经设置了该属性,以便TTTAttributesLabel在视图中的其他地方处理超链接.
我的解决方法是观察键盘显示和隐藏通知,并相应地切换该属性:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardDidShowNotification:) name:UIKeyboardDidShowNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardDidHideNotification:) name:UIKeyboardDidHideNotification object:nil];
Run Code Online (Sandbox Code Playgroud)
(注册通知)
- (void)keyboardDidShowNotification:(NSNotification*)notification
{
tapGestureRecognizer.cancelsTouchesInView = YES;
}
- (void)keyboardDidHideNotification:(NSNotification *)notification
{
tapGestureRecognizer.cancelsTouchesInView = NO;
}
Run Code Online (Sandbox Code Playgroud)
(处理通知)
行为方面唯一的问题是,当显示键盘时,超链接仍然不起作用:触摸它只会关闭键盘,而不是将触摸转发给链接处理程序.但我可以忍受这一点.键盘解除后,链接正常.
| 归档时间: |
|
| 查看次数: |
1361 次 |
| 最近记录: |