如果文本字段不为空,如何启用UIButton?

时间:2011-04-02 13:59:09

标签: iphone objective-c ios

我的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;
    } 

但是第一个应用程序在写入时崩溃,而第二个应用程序则没有重新启用按钮。在此先感谢您的帮助:)

1 个答案:

答案 0 :(得分:2)

看来URLToTrim是一个UITextField?第一个问题是您在文本字段本身上调用stringByTrimmingCharactersInSet:,而不是文本字段的值。您可以使用URLToTrim.text在其他两个中执行此操作。

第二个问题是viewDidLoad仅在首次加载视图时被调用,因此永远不会再次调用它来重新启用按钮。您希望在UITextFieldDelegate的某个方法(可能已经是同一个视图控制器)中执行该代码,可能textField:shouldChangeCharactersInRange:replacementString:虽然textFieldShouldEndEditing: / textFieldDidEndEditing:可以工作但如果您只想要完成编辑后要更新的按钮。