2010-11-26 18 views
13

我使用-(void)textFieldDidBeginEditing:(UITextField *)sender這個函數在我的應用程序中。當我選擇文本框時,這不會被調用。 這裏的代碼...- (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"); 
    } 
} 
+5

你問10個問題已經並接受沒有答案至今......請接受問題的答案,讓人們會覺得更傾向於幫助你。 – DarkDust 2010-11-26 12:45:33

回答

26

你設置的UITextField的實例代表當前視圖控制器是這樣的:

textField.delegate = self;(個體經營表示回調textFieldDidBeginEditing被覆蓋的實例)

+0

其工作Sanniv ...,謝謝你的寶貴意見 – Chinju 2010-11-27 04:24:45

4

您必須包括UITextFieldDelegate在.h文件中

@interface yourViewController : UIViewController <UITextFieldDelegate> 
1

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

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]; 
     } 
    } 
相關問題