Не могу использовать UICollectionView в UIInputViewController для расширения клавиатуры

Я создал подкласс UICollectionView, который я хочу использовать для предоставления ключей в UIInputViewController в качестве расширения клавиатуры. Но я обнаружил, что попытка создать экземпляр UICollectionView приведет к сбою клавиатуры при каждом переключении пользователя на нее. Думая, что это может быть связано с моим подклассом UICollectionView, я попытался заменить его простым UICollectionView, но это вызвало ту же проблему. Я даже пытался создать экземпляр объекта, но ничего не сделал с ним, как в приведенном ниже фрагменте, но он все равно разбил клавиатуру.

//  KeyboardViewController.m

- (void)viewDidLoad {
    [super viewDidLoad];

    UICollectionView *collect = [[UICollectionView alloc] initWithFrame:CGRectMake(0, 0, 200, 200)];
}

Я не могу получить отладку на клавиатуре, потому что отладчик подключается к процессу основного приложения, поэтому я не могу сказать, что вызывает сбой. Я был бы очень признателен за любую информацию о том, возможно ли использовать UICollectionView для расширения клавиатуры, и если да, то как я могу обойти эту проблему.

1 ответ

Решение

Оказывается, что проблема была вызвана простым импортом заголовка для подкласса UICollectionView, хотя я не использовал его. Когда я удалил импорт, я смог создать простой UICollectionView и добавить его в качестве подпредставления клавиатуры.

Это означало, что мне пришлось сделать несколько довольно неприятных вещей, чтобы абстрагировать методы делегата и источника данных в отдельный класс, чтобы их можно было многократно использовать, но это работает.

Другие вопросы по тегам