abcf
abcf

Reputation: 695

Keyboard not hidden in ios

I have a UITextView (purpose : comment) pinned at the bottom of my screen, when the user wants to add a comment, the keyboard appears and I have the comment view shift upwards along with the comment. I also have a cancel button to hide the keyboard, but the keyboard isn't hidden

//Set up NSNotification for Keyboard
-(void) viewWillAppear:(BOOL)animated
{
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillToggle:)
                                             name:UIKeyboardWillShowNotification object:nil];
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillToggle:)
                                             name:UIKeyboardWillHideNotification object:nil];
}

//Code to shift comment view up with keyboard
 - (void) keyboardWillToggle:(NSNotification *)aNotification
{
    CGRect frame = [self.navigationController.toolbar frame];
    CGRect keyboard = [[aNotification.userInfo valueForKey:@"UIKeyboardFrameEndUserInfoKey"] CGRectValue];
    frame.origin.y = keyboard.origin.y - frame.size.height;
    [UIView animateWithDuration:[[aNotification.userInfo valueForKey:@"UIKeyboardAnimationDurationUserInfoKey"] floatValue] animations:^
  {
     [self.navigationController.toolbar setFrame:frame];
 }];
}


//Hide keyboard
-(void)cancelComment:(UIBarButtonItem*)sender{
    NSLog(@"cancelComment called");
    [self.view endEditing:YES];
}

I feel like this should work? "cancelComment called" is being logged to the console but the keyboard isn't hidden

Upvotes: 0

Views: 95

Answers (3)

Chetan Sundriyal
Chetan Sundriyal

Reputation: 39

- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
    [yourtextfieldname resignfirstresponder];
}

Hope this will you!

Upvotes: 0

xks
xks

Reputation: 11

you can try

-(void)cancelComment:(UIBarButtonItem*)sender{
    NSLog(@"cancelComment called”);
    [self.navigationController.view endEditing:YES];
}

I think you textView not in self.view and in the self.navigationController.view

Upvotes: 1

Coder1000
Coder1000

Reputation: 4461

SOLUTION:

You have forgotten to put:

[yourtextfield resignfirstresponder];

in your cancelComment function.

Upvotes: 2

Related Questions