【问题标题】:Enable UIButton if UITextField is not empty in IPhone app如果 iPhone 应用中的 UITextField 不为空,则启用 UIButton
【发布时间】:2012-01-09 06:41:57
【问题描述】:

在我的应用程序中,我在登录页面中有两个文本字段(用户名和密码)和 UI 按钮。

如果文本字段(密码)有文本,我想启用按钮。

我在 viewDidLoad() 中创建了具有以下属性的 UITextfield 和 UIbutton。

 self.txtFieldPassword.clearButtonMode = UITextFieldViewModeWhileEditing;
[self.btnLogin setEnabled:NO];

我已经尝试了下面的代码,但没有运气。

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
if (textField == self.txtFieldPassword) {

    // checking for any whitespaces
    if(([string rangeOfString:@" "].location != NSNotFound))
    {
        return NO;
    }  

    if( [[self.txtFieldPassword.text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] length] )
        self.btnLogin.enabled = YES;
    else
        self.btnLogin.enabled = NO;
}

return YES;
}

但是,如果我删除了 UitextField 中的以下行,它就起作用了。

self.txtFieldPassword.clearButtonMode = UITextFieldViewModeWhileEditing;

我想启用具有上述属性的按钮。如何实现?

谢谢!!!

【问题讨论】:

    标签: iphone objective-c uibutton uitextfield uitextfielddelegate


    【解决方案1】:

    您可以只检查 string.length == 0 和 range.length > 0;这表示删除。但是,您真正想要的只是进行挂起的修改,然后检查您是否仍然有一个非空字符串。

    - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
    NSString *testString = [textField.text stringByReplacingCharactersInRange:range withString:string];
    testString = [testString stringByTrimmingCharactersInSet:
                  [NSCharacterSet whitespaceAndNewlineCharacterSet]];
    if( testString.length)
        myButton.enabled = YES;
    else
        myButton.enabled = NO;
    }
    - (BOOL)textFieldShouldClear:(UITextField *)textField{
     _done_button.enabled = NO;
      return YES;
    }
    

    你可以通过 self.txtFieldPassword.clearButtonMode = UITextFieldViewModeWhileEditing;财产。它对我来说很好,祝你有美好的一天

    【讨论】:

      猜你喜欢
      • 2016-06-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多