NSInvalidArgumentException причина клавиатурыWasHidden? - PullRequest
0 голосов
/ 30 ноября 2010

Что здесь не так?

- (IBAction)textFieldDidEndEditing:(id)sender
{
    if(!_isEditing )
        return;
    UITextField* textField = (UITextField*)sender;
    NSString* newValue = [textField text];
    UITableViewCell* cell = [self GetCellFromTextField:textField];
    NSString* fieldName =[(UILabel*)[self GetLabelHeaderFromCell:cell] text];   
    NSIndexPath* indexPath= [self GetIndexPathForCell:cell];
    [PersonalSection SetFieldValue:newValue AndFieldName:fieldName UsingIndexPath:indexPath AndPersonalInformation:self.personalInfoInUse];

    _trackingEditTextField=nil;
    [fieldName release];
    _isEditing = FALSE;

}

- (IBAction)textFieldDidBeginEditing:(id)sender
{
    _trackingEditTextField=(UITextField*)sender;
}

-(IBAction)textFieldDidChange
{
    _isEditing=YES;
    self.navigationItem.rightBarButtonItem = saveButton;
    self.navigationItem.leftBarButtonItem = cancelButton;
}

- (BOOL)textFieldShouldReturn:(UITextField *)textField {
    [_trackingEditTextField resignFirstResponder];
    return NO;
}

-(void)KeyboardDidShow:(NSNotification*) notification
{
    if ( keyboardShown )
        return;

    CGRect frame = tableView.frame;
    frame.size.height -= 165;
    tableView.frame = frame;
    [tableView scrollToRowAtIndexPath:[self GetIndexPathForTextView:_trackingEditTextField] atScrollPosition:0 animated:YES];
    keyboardShown = YES;
}

- (void)keyboardWasHidden:(NSNotification *)notification {
    if ( keyboardShown ) {

        CGRect frame = tableView.frame;
        frame.size.height += 165;
        tableView.frame = frame;
        keyboardShown = NO;

    }
}

Исключение возникает при попытке уйти в отставку первого респондента (то есть, когда я нажимаю кнопку «Готово» на клавиатуре), но клавиатура все еще показывает, и он не вошелКлавиатураWasHidden еще, которая является получателем UIKeyboardWillHideNotification

1 Ответ

0 голосов
/ 01 декабря 2010

Я слушал уведомление через следующую строку кода

[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(keyboardWasHidden::) name:UIKeyboardWillHideNotification object:nil];

так что это была маленькая ошибка, Селектором «keyboardWasHidden ::» должен был быть «keyboardWasHidden:»

надеюсь, это кому-нибудь пригодится.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...