textFieldShouldBeginEditing:仅识别1个textField

时间:2014-07-09 18:26:51

标签: ios objective-c uitextfield

我的界面中有两个文本字段。 txtUser允许用户输入他们的用户名,txtPass允许用户输入他们的密码。我在viewDidLoad方法中以编程方式分配了标记。我使用这些标签来识别不同的文本字段。问题是textFieldShouldBeginEditing方法只识别txtPass,而忽略txtUser。这两个变量都链接到各自的文本字段,因此不会导致问题。以下是我的代码:

- (void)viewDidLoad{

    [super viewDidLoad];

    self.txtUser.tag=10;
    self.txtPass.tag=20;

}

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField{ 

    if (textField.tag == 10){
        self.btnNext.enabled = YES;
        self.btnPrevious.enabled = NO;
    }else if(textField.tag == 20){
        self.btnNext.enabled = NO;
        self.btnPrevious.enabled = YES;
    }

    return YES;
}

2 个答案:

答案 0 :(得分:3)

您是否在任何地方为文本字段设置委托?

self.txtUser.delegate=self;
self.txtPass.delegate=self;

还要确保在视图控制器上实现UITextFieldDelegate。

@interface YourViewController: UIViewController<UITextFieldDelegate>

答案 1 :(得分:0)

我半自信的猜测是您设置了代理,但没有设置代码,因此您认为分配代码的代码无效(将.tag = 10分配给nil)。

两个字段的传入标记为零(默认值),因此委托代码中的else分支始终在运行。

通过设置插座(或通过在IB中设置标签)进行修复。