사용자가 "취소"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"방법을 사용하여 키보드를 해고하려고 할 때 재미있는, 나는 키보드 알림을받을 내의 ViewController를 등록하고, 나는이 같은 오류가 . 내 textFieldShouldReturn 코드는 다음과 같습니다.
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
if ([textField canResignFirstResponder])
{
[textField resignFirstResponder];
}
return YES;
}
당신이 활동 범위를 할당하는 코드를 게시 할 수 –
나중에, 지금까지 거기에 – MattL