Пользовательская кнопка на клавиатуре не всегда отображается - PullRequest
0 голосов
/ 15 марта 2012

Я добавил пользовательскую кнопку на клавиатуре телефонной панели, которая появляется, когда я редактирую UITextField. Предполагается, что кнопка скрывает клавиатуру, но если я непосредственно перед запуском приложения использовал клавиатуру с символом эмодзи, в другом приложении клавиатура остается в этой раскладке. Как сделать так, чтобы при входе в приложение оно автоматически менялось на раскладку телефона?

Я пробовал с calculatingField.keyboardType = UIKeyboardTypePhonePad;, но он работает, только если я не использовал клавиатуру Emoji.

Вот два снимка экрана, которые объясняют это лучше:

Вот как это должно выглядеть и выглядит, если я не использовал emoji-клавиатуру до запуска: img one

И вот как это выглядит, если я использовал эмодзи-клавиатуру в другом приложении перед тем, как запустить свое: img two

- (void)addButtonToKeyboard {    
UIButton *yourButton = [UIButton buttonWithType:UIButtonTypeCustom];  
yourButton.frame = CGRectMake(0, 163, 105, 53);  
yourButton.adjustsImageWhenHighlighted = NO;  
yourButton.titleLabel.font = [UIFont boldSystemFontOfSize:16];  

[yourButton setTitle:@"FÆRDIG" forState:UIControlStateNormal];  
[yourButton setTitleColor:[UIColor colorWithRed:0.302f green:0.33f blue:0.384f alpha:1.0f] forState:UIControlStateNormal];  
[yourButton setBackgroundImage:[UIImage imageNamed:@"doneup.png"] forState:UIControlStateNormal];  

[yourButton setTitle:@"FÆRDIG" forState:UIControlStateHighlighted];  
[yourButton setTitleColor:[UIColor whiteColor] forState:UIControlStateHighlighted];  
[yourButton setBackgroundImage:[UIImage imageNamed:@"donedown.png"] forState:UIControlStateHighlighted];  

[yourButton addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];  

UIWindow* tempWindow = [[[UIApplication sharedApplication] windows] objectAtIndex:1];  
UIView* keyboard;  
for(int i=0; i<[tempWindow.subviews count]; i++) {  
    keyboard = [tempWindow.subviews objectAtIndex:i];  

    if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 3.2) {  
        if([[keyboard description] hasPrefix:@"<UIPeripheralHost"] == YES)  
            [keyboard addSubview:yourButton];  
    } else {  
        if([[keyboard description] hasPrefix:@"<UIKeyboard"] == YES)  
            [keyboard insertSubview:yourButton atIndex:100];  
    }  
}  
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...