iOS AlertView应用程序扩展

我正在使用自定义keyboard (iOS App Extension) 。 我有一个UICollectionView在我的Keyboard Layout ,所以当一个item被选中,我想显示一个message (例如UIAlerView )。

这是我的代码:

 - (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath{ ... UIAlertController * alert= [UIAlertController alertControllerWithTitle:@"My Title" message:@"Enter User Credentials" preferredStyle:UIAlertControllerStyleAlert]; [self presentViewController:alert animated:YES completion:nil]; } 

我得到这个错误: 'Feature not available in extensions of type com.apple.keyboard-service'

所以…有什么办法显示来自App Extensionmessage

编辑:

这是一个例子。 IKEA Emoticons Keyboard显示一条消息(如select一个项目后的Android Toast )。

我也试过这个库:

iOS Toast图书馆

在这里输入图像说明

可悲的是,但是没有办法在键盘扩展中显示UIAlertView。 实际上,InputViewController的框架上面没有任何东西可以显示出来。 苹果公司的文档中非常清楚:

…自定义键盘只能在其UIInputViewController对象的主视图中绘制…不能在自定义键盘的主视图的顶部边缘上方显示关键graphics,因为系统键盘在iPhone上点击在最上面一行按住一个键。

至于键盘内的信息,有一些有用的库可以帮助我们。 例如https://github.com/scalessec/Toast和https://github.com/sergeylenkov/PTHintController

最后我解决了这个问题。 这不是最好的解决scheme,但至less我得到了我想要的效果。

我已经在xib文件中创build了一个模拟Toastxib并将其设置为hidden

当select该项目时,我会显示“伪造” Toast 2秒钟并再次隐藏。

 self.popUpView.hidden = NO; dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, 2.0 * NSEC_PER_SEC); dispatch_after(popTime, dispatch_get_main_queue(), ^(void){ self.popUpView.hidden = YES; }); 

我不知道这是不是一个好的解决scheme,但我真的不得不find一个解决scheme。