用户更改值时启用完成按钮 - Xcode

时间:2012-12-04 16:48:37

标签: objective-c ios uibutton

我试图将其设置为如果在键盘上键入任何值而未按下返回键并且其中两个标签已从“选择”更改为其他内容,则顶部的按钮将启用。但是,我尝试过使用IBAction说:

 - (IBAction)valuesChanged {
if (textField.text != nil && ![labelOne.text isEqualToString:@"Select"] && ![labelTwo.text isEqualToString:@"Select"]) {
    NSLog(@"Success");
 }

else {
    NSLog(@"No Success");
   }
}

但我已经意识到这不起作用,因为:

  • 当我将IBAction Sent Event作为“Value Changed”
  • 时,文本字段不起作用
  • 标签不接受任何操作。

我该怎么做?

2 个答案:

答案 0 :(得分:1)

文本字段委托方法告诉您用户在文本字段中键入字符或以其他方式更改其内容textField:shouldChangeCharactersInRange:replacementString:。在文本字段委托中实现它并根据需要做出响应。您也将返回YES。

原始代码无法连接的一个原因可能是您没有使用IBAction方法的规范形式;它应该是

 - (IBAction)valuesChanged:(id)sender {

原始代码中的另一个问题是UITextField不会发出Value Changed。你想要的是编辑改变。但委托方法同样适用。

答案 1 :(得分:0)

尝试UITextField委托方法。

- (void)textFieldDidBeginEditing:(UITextField *)textField;
- (void)textFieldDidEndEditing:(UITextField *)textField;