Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

iOS 8 custom keyboard extension UIKeyboardType

I'm building a iOS 8 custom keyboard and I'd like the change the layout of the keyboard based on the UIKeyboardType, however, reading the keyboard type in UIInputViewController is always 0. Any suggestions? Thanks in advance!

- (void)viewDidLoad
{
    [super viewDidLoad];

    NSLog(@"TextInputMode: %ld", self.textDocumentProxy.keyboardType);
}
like image 439
yuklai Avatar asked Feb 12 '23 17:02

yuklai


2 Answers

Get the keyboardType in InputView Delegate Methods Instead of ViewDidLoad . Because you can't get the keyboardType until The keyboard is fully presented and the input object is activated .

- (void)textWillChange:(id<UITextInput>)textInput {

    NSLog(@"TextInputMode: %ld", self.textDocumentProxy.keyboardType);

}

OR

- (void)textDidChange:(id<UITextInput>)textInput {

    NSLog(@"TextInputMode: %ld", self.textDocumentProxy.keyboardType);

}
like image 116
Ezimet Avatar answered Feb 14 '23 05:02

Ezimet


(not enough rep to add a comment sorry)

textDidChange is the best method to use because the keyboardType has been updated when this is called. If you use textWillChange you will find that your keyboard lags behind by one type.

like image 22
Tom K Avatar answered Feb 14 '23 06:02

Tom K