Я загрузил iOS 8 Gold Master для iPhone и SDK.
Я протестировал приложение, и оно работает нормально, за исключением одного момента.
У меня есть текстовое поле, в котором отображается цифровая клавиатура, если пользователь хочет что-то напечатать, кроме того, при появлении клавиатуры в пустую область добавляется настраиваемая кнопка.
- (void)addButtonToKeyboard
{
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
{
// create custom button
UIButton * doneButton = [UIButton buttonWithType:UIButtonTypeCustom];
doneButton.frame = CGRectMake(-2, 163, 106, 53);
doneButton.adjustsImageWhenHighlighted = NO;
[doneButton setImage:[UIImage imageNamed:@"DoneUp.png"] forState:UIControlStateNormal];
[doneButton setImage:[UIImage imageNamed:@"DoneDown.png"] forState:UIControlStateHighlighted];
[doneButton addTarget:self action:@selector(saveNewLead:) forControlEvents:UIControlEventTouchUpInside];
// locate keyboard view
UIWindow * tempWindow = [[[UIApplication sharedApplication] windows]objectAtIndex:1];
UIView* keyboard;
for(int i=0; i<[tempWindow.subviews count]; i++)
{
keyboard = [tempWindow.subviews objectAtIndex:i];
// keyboard view found; add the custom button to it
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 3.2) {
if([[keyboard description] hasPrefix:@"<UIPeripheralHost"] == YES)
[keyboard addSubview:doneButton];
} else {
if([[keyboard description] hasPrefix:@"<UIKeyboard"] == YES)
[keyboard addSubview:doneButton];
}
}
}
}
До сих пор это работало нормально.
Прежде всего, я получаю предупреждение:
Не удалось найти клавиатуру, которая поддерживает тип 4 для клавиатуры iPhone-Portrait-NumberPad; с использованием 3876877096_Portrait_iPhone-Simple-Pad_Default
тогда эта настраиваемая кнопка также не отображается, что, как я думаю, из-за этих двух строк:
if([[keyboard description] hasPrefix:@"<UIPeripheralHost"] == YES)
и
if([[keyboard description] hasPrefix:@"<UIKeyboard"] == YES)
Какие-либо предложения?
У меня тоже была эта проблема после обновления до последней бета-версии Xcode. Настройки в симуляторе обновлены, поэтому обнаружена клавиатура ноутбука (внешняя). Если вы просто нажмете:
Симулятор iOS -> Оборудование -> Клавиатура -> Подключить аппаратную клавиатуру
так что запись не отмечена, тогда программная клавиатура будет отображаться снова.
источник
Эмулятор пытается найти цифровую клавиатуру на Mac, но она не найдена (у MacBook Pro, MacBook Air и «нормальной / маленькой» клавиатуры ее нет). Вы можете отменить выбор параметра «Подключить аппаратную клавиатуру» или просто проигнорировать сообщение об ошибке, это не окажет негативного влияния на приложение.
источник
Просто зайдите в
Это решит проблему.
Ваша клавиатура MAC не будет работать после выполнения вышеуказанного шага, вы должны использовать клавиатуру симулятора.
источник
Я использую xcode с ios 8, просто снимите флажок с опции подключения аппаратной клавиатуры в вашем симуляторе-> Оборудование-> Клавиатура-> Подключить аппаратную клавиатуру.
Это решит проблему.
источник
У меня была такая же проблема в Xcode 8.1 и iOS 10.1. Что сработало для меня, так это переход в Simulator-> Hardware-> Keyboard и снятие флажка Connect Hardware Keyboard.
источник
Перейдите в Simulator-> Hardware-> Keyboard и снимите флажок Connect Hardware Keyboard.
То же, что и многие ответы выше, НО не изменилось для меня, пока я не выйду и не перезапущу симулятор. xcode 8.2.1 и Simulator 10.0.
источник
Запустите приложение с помощью симулятора
iOS Simulator-> Hardware-> Keyboard -> iOS использует ту же раскладку, что и OS X
Это решит проблему, если кто-нибудь запустит свое приложение на своем устройстве.
источник
У меня такое же сообщение об ошибке по двум разным причинам, поэтому вы можете добавить их в свой контрольный список отладки:
Контекст: Xcode 6.4, iOS: 8.4. Я добавлял панель инструментов с настраиваемыми
UIBarButton
s для загрузки с помощьюUIKeyboardTypeNumberPad
(Swift:)UIKeyboardType.numberPad
, а именно «Готово» и «+/-». У меня была эта проблема, когда:Мой UIToolbar был объявлен как свойство, но я забыл явно выделить / инициализировать его.
Я остановился на последней строке,
[myCustomToolbar sizeToFit];
которая звучит так, как будто это та же семья, что и ответ Холдена (мой код здесь: https://stackoverflow.com/a/32016397/4898050 ).Удачи
источник
В вашем приложении iOS невозможно найти цифровую клавиатуру, подключенную к вашей OS X. Поэтому вам просто нужно снять флажок с опции подключения аппаратной клавиатуры в вашем симуляторе по следующему пути только для целей тестирования:
Это решит указанную выше проблему.
источник
У меня была такая же проблема с использованием профиля обеспечения распространения. Убедитесь, что вы используете профиль разработчика
источник
Почему длинный код и не использовать UIToolbar? поскольку предупреждение все еще сохраняется?
UIToolbar работает для любой версии iOS, вот мой пример кода
источник
Возможно, вам следует сбросить рамку кнопки, у меня тоже была проблема, и введите в журнал вид клавиатуры следующим образом:
ios8:
before8:
источник
Хорошо, вот простое исправление для отображения кнопки «Готово» и ее работы в приложении как в iOS 9, так и в iOS 8 и ниже, когда я получаю аналогичную ошибку. После запуска приложения и его просмотра с помощью «Иерархии представления» (т.е. щелчка по значку «Просмотр иерархии» на панели области отладки, когда приложение работает на устройстве и проверки ваших представлений в раскадровке) можно было наблюдать , что клавиатура отображается на разные окна в iOS 9 по сравнению с iOS 8 и более ранними версиями и должны быть учтены. addButtonToKeyboard
И вот как вы можете удалитьKeyboardButton с клавиатуры, если хотите.
источник