无法将UIInputViewController中的UICollectionView用于键盘扩展

时间:2018-09-18 22:51:15

标签: ios uicollectionview ios-keyboard-extension uiinputviewcontroller

我创建了一个UICollectionView子类,我想使用它来提供UIInputViewController中的键作为键盘扩展。但是我发现尝试实例化UICollectionView会导致每当用户切换到它时键盘崩溃。考虑到可能与UICollectionView子类有关,我尝试将其替换为普通的UICollectionView,但这引起了相同的问题。我什至尝试实例化该对象,但不对其执行任何操作,如下面的摘录所示,但它仍然使键盘崩溃。

//  KeyboardViewController.m

- (void)viewDidLoad {
    [super viewDidLoad];

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

我无法在键盘上进行任何调试,因为调试器会附加到主应用程序的进程中,所以我无法确定是什么原因导致了崩溃。对于是否可以在键盘扩展上使用UICollectionView,以及如果可以的话,如何解决此问题,我将不胜感激。

1 个答案:

答案 0 :(得分:0)

事实证明,问题是由于仅导入了UICollectionView子类的标头引起的,即使我没有使用它也是如此。删除导入后,我可以实例化一个普通的UICollectionView并将其添加为键盘的子视图。

这意味着我必须做一些相当讨厌的工作,才能将委托和数据源方法抽象到一个单独的类中,以便它们可以重用,但它可以工作。