Ios 从单元格内的UITextField获取信息
我在自定义单元格中有一个UITextField。我在viewController中有一个按钮,当单元格的UITextField中有文本时,我希望该按钮变为红色。当UITextField位于viewController中时,我创建了这样的按钮,但当UITextView位于单元格内部时,我就没有创建这样的按钮。我该怎么做呢 如果UITextField在viewController中,我会这样做-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
- (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代码>
就这样