Ios 从单元格内的UITextField获取信息

Ios 从单元格内的UITextField获取信息,ios,iphone,objective-c,uitableview,uitextfield,Ios,Iphone,Objective C,Uitableview,Uitextfield,我在自定义单元格中有一个UITextField。我在viewController中有一个按钮,当单元格的UITextField中有文本时,我希望该按钮变为红色。当UITextField位于viewController中时,我创建了这样的按钮,但当UITextView位于单元格内部时,我就没有创建这样的按钮。我该怎么做呢 如果UITextField在viewController中,我会这样做- - (void)textFieldDidChange:(id)sender { if (sel

我在自定义单元格中有一个UITextField。我在viewController中有一个按钮,当单元格的UITextField中有文本时,我希望该按钮变为红色。当UITextField位于viewController中时,我创建了这样的按钮,但当UITextView位于单元格内部时,我就没有创建这样的按钮。我该怎么做呢

如果UITextField在viewController中,我会这样做-

- (void)textFieldDidChange:(id)sender {

    if (self.schoolText.text.length > 0) {
        self.navigationItem.rightBarButtonItem.tintColor = [UIColor redColor];
    }else{

        self.navigationItem.rightBarButtonItem.tintColor = [UIColor colorWithRed:193/255.5 green:193/255.0 blue:193/255.0 alpha:1.0];

    }

}

您可以使用下面的
UITextFieldDelegate
方法检查长度

-(BOOL)textField:(UITextField*)textField应更改字符范围:(NSRange)范围替换字符串:(NSString*)字符串

需要注意的一点是,上面的方法是在文本字段实际更新其文本之前调用的,为了克服这一问题,您可以使用下面的行


[textField.text-stringByReplacingCharactersInRange:range with string:string].length
为了清楚起见,我假设您创建了一个自定义的
UITableViewCell
,其出口名为
UITextField
。您已经将情节提要中的
UITextField
连接到自定义单元格

现在,当您将数据填充到
-tableView:cellForRowAtIndexPath:
您必须执行以下任一操作:

如果要在文本更改时更改按钮的颜色,请使用:

[[NSNotificationCenter defaultCenter]添加观察者:自选择器:@selector(textChanged:)名称:UITextFieldTextDidChangeNotification对象:cell.theTextField]

textChanged:
是这样一种方法:

-(void)textChanged:(NSNotification*)通知

或者,如果委托足够,只需使用
cell.theTextField.delegate=self

就这样