- (void)textFieldDidBeginEditing:(UITextField *)sender ..当我选择textfield时不调用这个函数?

时间:2010-11-26 12:41:34

标签: iphone delegates uitextfield

我在我的应用程序中使用-(void)textFieldDidBeginEditing:(UITextField *)sender这个函数。当我选择文本字段时,不会调用此方法。 这是代码......

-(void)textFieldDidBeginEditing:(UITextField *)sender{  
    if([sender isEqual:txtName])//txtName is the IBOutlet of the UITextField  
    {  
        NSLog(@"Name");  
    }  
    else{  
        NSLog(@"NO_Name");  
    }  
}

4 个答案:

答案 0 :(得分:26)

您是否将UITextField实例的委托设置为当前视图控制器,如下所示:

textField.delegate = self;(self表示重写回调textFieldDidBeginEditing的实例)

答案 1 :(得分:11)

确保完成2个简单步骤

1 - 实施委托UITextFieldDelegate

@interface yourViewController : UIViewController <UITextFieldDelegate>

2 - 设置代理

yourTextField.delegate = self

如果您的视图中有多个文本字段,则可以为所有文本字段设置委托

for (id subView in self.view.subviews)
    {
        if ([subView isKindOfClass:[UITextField class]]) {
            [subView setDelegate:self];
        }
    }

答案 2 :(得分:4)

您必须在.h文件中包含UITextFieldDelegate

@interface yourViewController : UIViewController <UITextFieldDelegate>

答案 3 :(得分:1)

您必须在.h文件中包含UITextFieldDelegate,并添加YourTextField.delegate = self