Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Dismissing the keyboard for a UITextField in UIAlertView

I have a Customized UIAlertView.I have a UITextField in that AlertView, which becomes the firstResponder as soon as it is shown. Now I need to dismiss the keyboard for that UITextField when user touches somewhere else in the AlertView. I have touchesBegan event for that.

Everything is in place and works fine, except when I call resignFirstResponder on the UITextField, it resigns from being the first responder but the keyboard is not dismissed. Is there any way to dismiss that keyboard.

I was looking for the solutions and found a similar post here with no answers

If anyone was able to find a way out please let me know. I even tried the following way, but its not working

UIWindow* tempWindow;

    // Because we cant get access to the UIKeyboard throught the SDK we will just use UIView. 
    // UIKeyboard is a subclass of UIView anyways
    UIView* keyboard;

    // Check each window in our application
    for(int c = 0; c < [[[UIApplication sharedApplication] windows] count]; c ++)
    {
        // Get a reference of the current window
        tempWindow = [[[UIApplication sharedApplication] windows] objectAtIndex:c];
        for(int i = 0; i < [tempWindow.subviews count]; i++)
        {
            // Get a reference to the current view
            keyboard = [tempWindow.subviews objectAtIndex:i];

            // Loop through all views in the current window

            if([[keyboard description] hasPrefix:@"<UIKeyboard"] == YES){
                [keyboard removeFromSuperview];
            }

        }
    }
like image 667
rkb Avatar asked Jan 21 '23 05:01

rkb


1 Answers

You must call resignFirstResponder on the UIAlertField,

eg:

[textField resignFirstResponder];[alertView resignFirstResponder];
like image 111
chundong Avatar answered Feb 04 '23 06:02

chundong