我在UITableView中嵌入了一些UITextField,我的UIViewController类也设置为UITextFieldDelegate。我没有直接引用ViewController类中的UITextFields,只能通过访问给定NSIndexPath的特定UITableView单元格来访问它们。
每当UIButton的操作目标由于用户点击而被调用时,“-(void)textFieldDidEndEditing:(UITextField *)textField
。尚未调用最后一个活动字段。如何捕获上一个活动字段中的文本?
我已尝试设置标记以记录编辑的开始和结束以及其他一些解决方案,但这些似乎都没有。
在我的onButtonTap动作处理程序中,如果我有这个:
[self.view endEditing:YES];
// would the call to 'textFieldDidEndEditing' happen synchronously and then return
// to this line or would they be async?
[self doActionLogic]; //
有人能建议一个好的技术吗?似乎这将是一个标准问题,但我只是在找出答案时有点慢。
答案 0 :(得分:0)
如果您只需要输入文本字段,可以在方法中将测试设置为ivar并返回yes。
- (BOOL)textFieldShouldEndEditing:(UITextField *)textField
textFieldDidEndEditing可以在按钮操作后调用,但由于你已经在ivar中有了它,所以没有问题。但最好的方法是,你可以检查文本字段的输入和启用按钮
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
所以只要你在uitexfield.shouldChangeChangeChangeChangeChangeChangeChangeChangeChangeChangeChangeChangeChangeChangeChangeCongeInRange输入插入到uitextfield之前调用,就会启用解锁。