我想解僱鍵盤時,用戶按下「取消」UIBarButtonItem。然而,當我點擊取消按鈕時,我得到一個SIGABRT,其中「無法識別的選擇器發送到實例」錯誤。「無法識別的選擇器」錯誤,當試圖解僱鍵盤
我的代碼來創建取消按鈕是:
- (void)keyboardWasShown:(NSNotification*)aNotification
{
//Add cancel button to navigation bar
UIBarButtonItem *dismissKeyboardBttn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(dismissKeyboard:)];
self.navigationItem.rightBarButtonItem = dismissKeyboardBttn;
}
並關閉鍵盤我有這樣的方法:
- (void)dismissKeyboard:(id)sender
{
[activeField resignFirstResponder];
//^^This line causes the SIGABRT^^
}
似乎很簡單。有任何想法嗎?
更新:activeField只是一個UITextField我用我的scrollView移動到用戶正在編輯的UITextField。它坐落在這兩種方法:
- (void)textFieldDidBeginEditing:(UITextField *)textField
{
activeField = textField;
}
- (void)textFieldDidEndEditing:(UITextField *)textField
{
activeField = nil;
}
更新2:有趣的是,我已經註冊了我的視圖控制器接收鍵盤通知,當我嘗試使用「textFieldShouldReturn」的方法來消除鍵盤,我得到了同樣的錯誤。這是我的textFieldShould返回代碼:
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
if ([textField canResignFirstResponder])
{
[textField resignFirstResponder];
}
return YES;
}
你能後,你指定activeField代碼 –
雅,它在那裏現在 – MattL