Xcode iOS 8 Keyboard types not supported
I too had this problem after updating to the latest Xcode Beta. The settings on the simulator are refreshed, so the laptop (external) keyboard was being detected. If you simply press:
iOS Simulator -> Hardware -> Keyboard -> Connect Hardware Keyboard
then the software keyboard will be displayed once again.
in iOS 8 when clicking on uitextfield keyboard is not open
In your iOS simulator, make sure that you've unchecked Hardware > Keyboard > Connect Hardware Keyboard.
Get keyboard size on iOS 8 not working with external keyboard
You can detect if external keyboard is connected and and set keyboard's height to 0 by doing something like that.
Objective-C version:
CGRect finalKeyboardFrame = [[info objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue];
finalKeyboardFrame = [self convertRect:finalKeyboardFrame fromView:self.window];
NSLog(@"origin.y: %f", finalKeyboardFrame.origin.y);
Shows the y coordinate properly depending if external keyboard is connected or not:
origin.y: 258.000000 (not connected)
origin.y: 474.000000 (connected)
Can't find keyplane that supports type 4 for keyboard iPhone-Portrait-NumberPad; using 3876877096_Portrait_iPhone-Simple-Pad_Default
I also had this problem and found the solution.
Below is the code which will work for iOS 8.0 and also for below versions.
I have tested it on iOS 7 and 8.0 (Xcode Version 6.0.1)
- (void)addButtonToKeyboard
{
// create custom button
self.doneButton = [UIButton buttonWithType:UIButtonTypeCustom];
//This code will work on iOS 8.3 and 8.4.
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.3) {
self.doneButton.frame = CGRectMake(0, [[UIScreen mainScreen] bounds].size.height - 53, 106, 53);
} else {
self.doneButton.frame = CGRectMake(0, 163+44, 106, 53);
}
self.doneButton.adjustsImageWhenHighlighted = NO;
[self.doneButton setTag:67123];
[self.doneButton setImage:[UIImage imageNamed:@"doneup1.png"] forState:UIControlStateNormal];
[self.doneButton setImage:[UIImage imageNamed:@"donedown1.png"] forState:UIControlStateHighlighted];
[self.doneButton addTarget:self action:@selector(doneButton:) forControlEvents:UIControlEventTouchUpInside];
// locate keyboard view
int windowCount = [[[UIApplication sharedApplication] windows] count];
if (windowCount < 2) {
return;
}
UIWindow *tempWindow = [[[UIApplication sharedApplication] windows] objectAtIndex:1];
UIView *keyboard;
for (int i = 0; i < [tempWindow.subviews count]; i++) {
keyboard = [tempWindow.subviews objectAtIndex:i];
// keyboard found, add the button
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.3) {
UIButton *searchbtn = (UIButton *)[keyboard viewWithTag:67123];
if (searchbtn == nil)
[keyboard addSubview:self.doneButton];
} else {
if([[keyboard description] hasPrefix:@" UIButton *searchbtn = (UIButton *)[keyboard viewWithTag:67123];
if (searchbtn == nil)//to avoid adding again and again as per my requirement (previous and next button on keyboard)
[keyboard addSubview:self.doneButton];
} //This code will work on iOS 8.0
else if([[keyboard description] hasPrefix:@"
for (int i = 0; i < [keyboard.subviews count]; i++)
{
UIView *hostkeyboard = [keyboard.subviews objectAtIndex:i];
if([[hostkeyboard description] hasPrefix:@" UIButton *donebtn = (UIButton *)[hostkeyboard viewWithTag:67123];
if (donebtn == nil)//to avoid adding again and again as per my requirement (previous and next button on keyboard)
[hostkeyboard addSubview:self.doneButton];
}
}
}
}
}
}
>
- (void)removedSearchButtonFromKeypad
{
int windowCount = [[[UIApplication sharedApplication] windows] count];
if (windowCount < 2) {
return;
}
UIWindow *tempWindow = [[[UIApplication sharedApplication] windows] objectAtIndex:1];
for (int i = 0 ; i < [tempWindow.subviews count] ; i++)
{
UIView *keyboard = [tempWindow.subviews objectAtIndex:i];
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.3){
[self removeButton:keyboard];
} else if([[keyboard description] hasPrefix:@" [self removeButton:keyboard];
} else if([[keyboard description] hasPrefix:@"
for (int i = 0 ; i < [keyboard.subviews count] ; i++)
{
UIView *hostkeyboard = [keyboard.subviews objectAtIndex:i];
if([[hostkeyboard description] hasPrefix:@" [self removeButton:hostkeyboard];
}
}
}
}
}
- (void)removeButton:(UIView *)keypadView
{
UIButton *donebtn = (UIButton *)[keypadView viewWithTag:67123];
if(donebtn) {
[donebtn removeFromSuperview];
donebtn = nil;
}
}
Hope this helps.
But , I still getting this warning:
Can't find keyplane that supports type 4 for keyboard iPhone-Portrait-NumberPad; using 3876877096_Portrait_iPhone-Simple-Pad_Default
Ignoring this warning, I got it working.
Please, let me know if you able to get relief from this warning.
Keyboard not shown under iOS 8
Finally, find that it's simulator's issue, not iOS 8's bug.
Workaround:
iOS Simulator > Hardware > Keyboard > Toggle Software Keyboard
or just press Cmd + K
Yeah, I've connected a hardware keyboard via bluetooth, but didn't notice this keyboard toggle function until now. Seems Xcode 6 will use my hardware keyboard by default.
Decimal Pad keyboard not working properly in iOS 8
Turns out, the issue with the UITextField
animation was not due to the keyboard problem. I needed to set up constraints in Xcode's storyboard for the UITextField
, make outlets for them in my view controller, and use the constraints to programmatically move the UITextField
. I have that working now. However, the error message still pops up when the decimal pad comes up. I guess I can just ignore it until Apple fixes it.
EDIT:
I reported the bug to Apple.
Can't find keyplane that supports type 10 for keyboard iPhone-Portrait-Emoji
Are you using the simulator? If so you should uncheck your keyboard.
iOS Simulator-> Hardware-> Keyboard -> Connect Hardware Keyboard
That could fix your first error: similar problems on Stackoverflow
Update
Google does not allow to search on emoji anymore. source
You could disable emoji in iOS to avoid searching with emoji: ios 8 disable emoji
The second 'fatal error': just catch the nil caused by the emoji
Related Topics
How to Support Universal Links in iOS App and Setup Server For It
How to Change the Device Orientation Programmatically in iOS 6
Iterate Over Snapshot Children in Firebase
Xcode, Where to Assign the Segue Identifier
What Are Sprite Kit'S "Category Mask" and "Collision Mask"
Using Nsuserdefaults on Arrays
How to Validate an E-Mail Address in Swift
Uisplitviewcontroller in Portrait on Iphone Shows Detail Vc Instead of Master
How to Play a Local Video With Swift
Shouldautorotatetointerfaceorientation Not Being Called in iOS 6
Storyboard Doesn't Contain a View Controller With Identifier
How to Segue Programmatically in iOS Using Swift