在UIButton点击后从UITextfield捕获文本

时间:2012-08-10 05:12:04

标签: uitableview ios5 uibutton uitextfield

我在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]; //

有人能建议一个好的技术吗?似乎这将是一个标准问题,但我只是在找出答案时有点慢。

1 个答案:

答案 0 :(得分:0)

如果您只需要输入文本字段,可以在方法中将测试设置为ivar并返回yes。

- (BOOL)textFieldShouldEndEditing:(UITextField *)textField

textFieldDidEndEditing可以在按钮操作后调用,但由于你已经在ivar中有了它,所以没有问题。但最好的方法是,你可以检查文本字段的输入和启用按钮

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string

所以只要你在uitexfield.shouldChangeChangeChangeChangeChangeChangeChangeChangeChangeChangeChangeChangeChangeChangeChangeCongeInRange输入插入到uitextfield之前调用,就会启用解锁。