我的UITextField和三个UIButton都有问题。 我希望在UITextfield为空时禁用按钮,并在其上有文本时重新启用。我已经尝试过了:
- (IBAction)validateFields:(id)sender {
NSString *trimName = [URLToTrim stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
if (trimName.length >0)
{
trim.enabled = 1;
trim2.enabled = 1;
trim3.enabled =1;
// proceed with your inserting values
}
}
而且:
-(void)viewDidLoad {
if([URLToTrim.text isEqualToString: @""]){
trim.hidden = YES;
trim2.hidden = YES;
trim3.hidden = YES;
} else {
trim.hidden = NO;
trim2.hidden = NO;
trim3.hidden = NO;
}
最后,这个:
-(void)viewDidLoad {
if ([URLToTrim.text isEqualToString:@""]) {
trim.enabled = 0;
trim2.enabled= 0;
trim3.enabled = 0;
}
但是第一个应用程序在写入时崩溃,而第二个应用程序则没有重新启用按钮。在此先感谢您的帮助:)
答案 0 :(得分:2)
看来URLToTrim是一个UITextField?第一个问题是您在文本字段本身上调用stringByTrimmingCharactersInSet:
,而不是文本字段的值。您可以使用URLToTrim.text
在其他两个中执行此操作。
第二个问题是viewDidLoad
仅在首次加载视图时被调用,因此永远不会再次调用它来重新启用按钮。您希望在UITextFieldDelegate的某个方法(可能已经是同一个视图控制器)中执行该代码,可能textField:shouldChangeCharactersInRange:replacementString:
虽然textFieldShouldEndEditing:
/ textFieldDidEndEditing:
可以工作但如果您只想要完成编辑后要更新的按钮。