UITextField和UIButton

问题描述:

我的视图中有一个textField和一个按钮,如果 文本框为空,我不希望用户可以单击该按钮。 当用户在文本字段中输入文字时,该按钮将会被点击以取消 。 我该怎么做?谢谢。UITextField和UIButton

为您的UITextField,您可以设置:

[textField addTarget:self action:@selector(editing:) forControlEvents:UIControlEventAllEditingEvents]; 
在编辑

然后:有:

-(void)editing:(UITextField *)sender { 
    myButton.enabled = ![sender.text isEqualToString:@""]; 
} 
+0

它的工作原理,谢谢。 – jxdwinter 2013-03-20 03:00:07

监听对文本字段的更改。随着文本更改,根据是否有文本更新按钮的enabled属性。当然你也需要在开始时设置按钮的状态。

// Setup the text field change listener (this can be done in IB if appropriate) 
// Put this in viewDidLoad if not using IB. 
UITextField *myTextField = ... // a reference to the text field 
[myTextField addTarget:self action:@selector(textFieldChangedAction:) forControlEvents:UIControlEventEditingChanged]; 

// Initialize the button's state (put this in viewDidLoad) 
myButton.enabled = myTextField.text.length > 0; 

// The method called as the text changes in the text field 
- (void)textFieldChangedAction:(UITextField *)sender { 
    myButton.enabled = sender.text.length > 0; 
} 

如果你愿意,你可以 “隐藏” 按钮通过设置将按钮的alpha值设置为0,并且当文本字段至少有一个字符长度时,将该按钮的alpha值设置为1以“显示”按钮。我认为这在概念上很容易做到,对用户来说非常适合。

设置textfield.delegate自我 然后在委托被textfielddidbeginediting ( 检查是文本框是@“” 然后禁用按钮

否则 启用按钮 )

还有还有一个。委派ü可以使用

Textdidchangecharacters

而且在viewDidLoad中按钮的第一状态应禁用