我的 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;
}
但是第一个应用程序在写入时崩溃,第二个按钮没有被重新启用。在此先感谢您的帮助:)
最佳答案
似乎 URLToTrim 是一个 UITextField?第一个问题是您在文本字段本身而不是文本字段的值上调用 stringByTrimmingCharactersInSet:
。您可以使用 URLToTrim.text
在其他两个中正确执行此操作。
第二个问题是 viewDidLoad
仅在首次加载 View 时调用,因此它永远不会被再次调用以重新启用按钮。您想在 UITextFieldDelegate(可能已经是您的同一 View Controller )的一种方法中执行该代码,可能是 textField:shouldChangeCharactersInRange:replacementString:
尽管 textFieldShouldEndEditing:
/textFieldDidEndEditing:
如果您只想在完成编辑时更新按钮,则可以使用。
关于iphone - 如果文本字段不为空,如何启用 UIButton?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5523579/