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

标签 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;
    } 

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

最佳答案

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

第二个问题是 viewDidLoad 仅在首次加载 View 时调用,因此它永远不会被再次调用以重新启用按钮。您想在 UITextFieldDelegate(可能已经是您的同一 View Controller )的一种方法中执行该代码,可能是 textField:shouldChangeCharactersInRange:replacementString: 尽管 textFieldShouldEndEditing:/textFieldDidEndEditing: 如果您只想在完成编辑时更新按钮,则可以使用。

关于iphone - 如果文本字段不为空,如何启用 UIButton?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5523579/

相关文章:

ios - 应用重新启动后的 AWS ExpiredTokenException

ios - 在顶部插入项目后如何将 UITableView 滚动到上一个 contentOffset

ios - 当我在 iphone 5 屏幕上运行程序时 xcode 看起来像 iphone 4

objective-c - NSTabViewItem 按钮标签可以调整大小吗?

objective-c - 找不到实例方法 - 对于应用程序委托(delegate)属性

ios - 如何在用户退出时暂停我的应用程序,并在他们重新进入应用程序时恢复应用程序?

iphone - 向 API 发送与 NSUserDefaults 中存储的值不同的值

java - 如何在ipad上运行Servlet

c# - ExternalAccessory 输入流/输出流为空?

iphone - 当应用程序从后台删除或在 iOS 中删除时发生的事件