Как восстановить клавиатуру по умолчанию после добавления панели инструментов (iphone) - PullRequest
0 голосов
/ 30 октября 2010

У меня есть пользовательская клавиатура с панелью инструментов в верхней части.Но я хочу получить клавиатуру по умолчанию, потому что я хочу использовать пользовательскую клавиатуру только в одном представлении.В другом представлении я хочу использовать клавиатуру по умолчанию.

- (void)keyboardWillShow:(NSNotification *)notification {   
    for (UIWindow *keyboardWindow in [[UIApplication sharedApplication] windows]) {
        // Now iterating over each subview of the available windows
        for (UIView *keyboard in [keyboardWindow subviews]) {
            // Check to see if the description of the view we have referenced is UIKeyboard.
            // If so then we found the keyboard view that we were looking for.
            //NSLog(@"keyboard %@",keyboard);
            if([[keyboard description] hasPrefix:@"<UIKeyboard"] == YES){
                NSValue *v = [[notification userInfo] valueForKey:UIKeyboardBoundsUserInfoKey];
                CGRect kbBounds = [v CGRectValue];
                if(keyboardToolbar == nil) {
                    keyboardToolbar = [[UIToolbar alloc] initWithFrame:CGRectZero];
                    keyboardToolbar.barStyle = UIBarStyleBlackTranslucent;
                    //keyboardToolbar.backgroundColor = [UIColor clearColor];
                    UIBarButtonItem *barButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Done" style:UIBarButtonItemStyleBordered target:self action:@selector(dismissKeyboard)];
                    UIBarButtonItem *flex = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
                    NSArray *items = [[NSArray alloc] initWithObjects:flex, barButtonItem, nil];
                    [keyboardToolbar setItems:items];
                    [barButtonItem release];
                    [flex release];
                    [items release];
                }
                [keyboardToolbar removeFromSuperview];
                keyboardToolbar.frame = CGRectMake(0, 0, kbBounds.size.width, 30);

                [keyboard addSubview:keyboardToolbar];
                keyboard.bounds = CGRectMake(kbBounds.origin.x, kbBounds.origin.y, kbBounds.size.width, kbBounds.size.height + 60);
                for(UIView* subKeyboard in [keyboard subviews]) {
                    if([[subKeyboard description] hasPrefix:@"<UIKeyboardImpl"] == YES) {                       
                        subKeyboard.bounds = CGRectMake(kbBounds.origin.x, kbBounds.origin.y - 30, kbBounds.size.width, kbBounds.size.height);
                    }
                }
            }
        }
    }

}

1 Ответ

0 голосов
/ 30 октября 2010

Ну, это зависит от того, как вы добавили панель инструментов на клавиатуру. В общем, я думаю, toolbar.hidden = YES может быть хорошим решением.

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