Не могу использовать 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 и добавить его в качестве подпредставления клавиатуры.
Это означало, что мне пришлось сделать несколько довольно неприятных вещей, чтобы абстрагировать методы делегата и источника данных в отдельный класс, чтобы их можно было многократно использовать, но это работает.