0

我的视图中有一个文本字段和一个按钮,如果文本字段为空,我不想让用户单击该按钮。当用户在文本字段中输入某些内容时,该按钮将是可点击的。我怎样才能做到这一点?谢谢你。

4

4 回答 4

1

监听文本字段的更改。随着文本的变化,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;
}
于 2013-03-20T02:41:04.243 回答
1

对于您的 UITextField,您可以设置:

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

然后在您的编辑中:有:

-(void)editing:(UITextField *)sender {
    myButton.enabled = ![sender.text isEqualToString:@""];
}
于 2013-03-20T02:45:44.870 回答
0

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

于 2013-03-20T02:47:44.787 回答
0

将 textfield.delegate 设置为 self 然后在委托中是 textfielddidbeginediting ( 检查是 textfield is @"" 然后禁用按钮

否则启用按钮)

还有一个。代表你可以使用

Textdidchangecharacters

并且在 viewdidload 按钮的第一个状态应该被禁用

于 2013-03-20T02:49:19.290 回答