NSInvalidArgumentException原因keyboardWasHidden?

时间:2010-11-30 14:45:29

标签: cocoa-touch exception

这里有什么问题?

- (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;

    }
}

尝试重新响应第一响应者时(例如,当我单击键盘上的“完成”按钮时)会触发异常,但键盘仍然显示且尚未输入keyboardWasHidden,这是UIKeyboardWillHideNotification的接收者

1 个答案:

答案 0 :(得分:0)

我正在通过以下代码行听取通知

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

所以这是一个小错误, 选择器“keyboardWasHidden ::”应该是“keyboardWasHidden:”

希望它对任何人都有用。