0

我知道有類似的問題,但thiere的回答沒有幫助我。我geuss我有一些其他的錯誤。功能textFieldShouldBeginEditing不叫

我有一個textView,我將它設置爲self,但不調用相關函數。

下面是代碼:

在.H:

@interface MyViewController : UIViewController<UITextFieldDelegate> 
@property (retain, nonatomic) IBOutlet UITextField *nameField; 

在.M:

... 
@synthesize nameField; 
... 
-(void)viewWillAppear:(BOOL)animated{ 
    [super viewWillAppear:animated]; 
    nameField.delegate = self; 
... 
} 
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField{ 
    exitKeyboardButton.hidden = NO; 
    return YES; 
} 
+0

你確定你已經連接在Interface Builder中'nameField'出口? – omz 2012-08-02 09:59:47

+0

f @你怎麼知道的!? – Luda 2012-08-02 10:02:13

+0

你工作正確,沒有連接,但沒有幫助。它仍然沒有響應 – Luda 2012-08-02 10:03:32

回答

0

最後,我使用的相關IBAction爲功能筆尖正確的名稱。 我有一個更好的主意,讓我知道,我會標記你的答案。

enter image description here

+0

你不需要設置頂級連接,一旦通過編程或者通過筆尖設置了委託,所有的回調都被固有地調用。例如,一個TableViewDelegate調用cellForRow,numberOfRows等,你永遠不必 – Elmo 2012-08-02 10:42:22

0

嘗試這些:

設置委託(但IDZ說,這是有問題的)viewDidLoad不是viewWillAppear

嘗試- (void)textFieldDidBeginEditing:(UITextField *)textField,而不是- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField

做額外額外額外確保您有連接

+0

我試過了,我沒幫忙 – Luda 2012-08-02 10:13:05

6

我想你忘記了線文本字段的委託給你的viewController。我常常忘了:)

ss