2011-11-07 37 views
0

我有一個IBAction連接到我的所有UITextFields上的EditingDidBegin,所以當UITextFields被點擊時,爲什麼下面的代碼不工作?如何取消隱藏當前活動文本框的鍵盤?

-(IBAction)keyboardShouldShow 
{ 

[self becomeFirstResponder]; 

NSLog(@"Keyboard Showing"); 

} 

另外請記住,除非因爲我的項目文件中有其他代碼而添加此代碼,否則鍵盤將不會顯示。

感謝

回答

0

你自己是不是你textfield.try改變的方法這一點,它重新鏈接到editingdidbegin。

-(IBAction)keyboardShouldShow:(UITextField*)sender 
{ 

[sender becomeFirstResponder]; 

NSLog(@"Keyboard Showing"); 

} 

HIH

+0

說這個錯誤:http://pastie.org/2826175 – pixelbitlabs

+0

這個錯誤是因爲你有你的Editing Did Begin事件鏈接到keyboardShouldShow而不是keyboardShouldShow:。回到接口生成器,刪除冗餘鏈接並將其重新鏈接到此方法。 – MadhavanRP

+0

錯誤已經消失,但不幸的是,當UITextField開始編輯時,鍵盤不會出現。爲什麼是這樣? – pixelbitlabs

0

因爲self是您的視圖控制器,而不是UITextField

使用UITextFieldDelegate方法:

- (void) textFieldDidBeginEditing:(UITextField *)textField { 
    if ([textField isKindOfClass:[UITextField class]]) { 
     [textField resignFirstResponder]; 
     NSLog(@"Keyboard Showing"); 
    } 
} 

如果你想用你自己的方法,一定要在UITextField作爲參數傳遞。 方法更改爲類似:

-(IBAction)keyboardShouldShow:(id)sender { 
    if ([sender isKindOfClass:[UITextField class]]) { 
     [sender resignFirstResponder]; 
     NSLog(@"Keyboard Showing"); 
    } 

}

+0

所以我能放的,而不是 「自我」? – pixelbitlabs

+0

我得到以下錯誤代碼:http://pastie.org/2824373 – pixelbitlabs

+2

你需要學習如何調試你自己的代碼。 – rckoenes