2014-09-14 5 views
2

У меня есть приложение iOS с iOS 5, оно включает пользовательский UITextView, который использует свой собственный inputView и inputAccessoryView. Он работает с iOS 7-симулятором, когда он становится FirstResponse, как inputView, так и inputAccessoryView, но с симулятором iOS 8, только связанный с ним входной просмотр показывает, что входной просмотр не отображается.InputAccessoryView не отображается на симуляторе iOS 8

Я использую Xcode 6 GM семян

HeInput_TextView.m

- (void)awakeFromNib 
{ 

    self.text = @""; 

    heKeyboard4x5 = [[HeKeyboard_ViewController alloc] init]; 
    inputAccessoryVC = [[InputAccessory_ViewController alloc] init]; 

    self.inputView = heKeyboard4x5.view; 
    self.inputAccessoryView = inputAccessoryVC.view; 
} 

Является ли это ошибка в IOS 8 тренажера или изменение для прошивки 8?

Edit:

я нашел больше информации об этой проблеме.

Эта проблема возникает в приложении на основе страниц, если UITextView на странице UIPageViewController, то UITextView.inputAccessoryView не отображается на симуляторе iOS 8, но отображается в симуляторе iOS 7.1.

Я создаю два проекта: «Приложение на основе единого окна» и «Приложение на основе страниц» и подтвердил, что проблема происходит, как описано выше.

ответ

3

Это новое поведение симуляторов в xcode 6. Чтобы увидеть свой пользовательский вид аксессуаров или даже по умолчанию, попробуйте снять галочку с помощью аппаратного обеспечения -> simulator -> connect harware keyboard.

+0

Я отключил аппаратное обеспечение -> Клавиатура -> подключить навигационную клавиатуру, inputAccessoryView по-прежнему не отображается на iPhone5 (8.0), но отображается на iPhone5 (7.1). – heMac

+0

@heMac Я использую https://github.com/simonbs/BSKeyboardControls в своем проекте. Он имеет пользовательский inputAccesoryView. Хорошо работает симулятор 6 ios 8. Вы можете проверить проектный тест и можете наблюдать за какой-то идеей из рабочего кода. –

+0

@nyekimon Спасибо, этот образец убеждает в том, что InputAccessoryView показывает симулятор iOS 8, поэтому программа находится внутри моего проекта. – heMac

3

Это ошибка iOS8.

Вы можете воспроизвести его на симуляторе в приложении для контактов Apple.

Добавить новый контакт и прокрутить вниз до «добавить дату».

Такая же проблема. Один коллега поднял яблочный рдар.

+0

Спасибо за проголосовать! Это ошибка, в приложении «Контакты» невозможно ввести дату, когда подключена аппаратная клавиатура. Как это ожидаемое поведение? – Brett

1

Я нашел аксессуары для просмотра в iOS8, не используя рамку представления, чтобы компенсировать их высоту над вашим InputView (или даже клавиатурой программного обеспечения по умолчанию).

Вам может понадобиться, чтобы убедиться, что ваш inputAccessoryView реализует

-(CGSize)intrinsicContentSize 

например:

@implementation InputAccessory_View 
// .. your code ... 
-(CGSize)intrinsicContentSize{ 
    return self.frame.size; 
} 
@end 
+0

Просмотр контроллеров не имеет 'frame' – sumofighter666

0

Мои извинения, я неправильно интерпретировал деталь. Меня вызвали проблемы с клавиатурой iOS8.

+1

Исправлено в iOS8.1, это была ошибка. – Brett

+0

Развертывание вашего метода управления доступом AccessAccessoryView. Как бы вы предложили чистое обнаружение того, что inputView не было/не было скрыто с помощью физической клавиатуры и должно ли содержимое его вставляться в inputAccessoryView? В противном случае пользователи без физической клавиатуры будут иметь эквивалент двух входных экранов на экране. (клавиатура + inputAccessoryView) – Maple

Смежные вопросы