[英]iOS AlertView App Extension
我正在使用自定义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 Extension
的message
?
编辑:
这是一个例子。 IKEA Emoticons Keyboard
显示一条消息(选择一项后就像Android Toast
)。
我也尝试过这个库:
说来可悲的是,但没有办法来显示键盘扩展UIAlertView中。 实际上,在InputViewController框架上方无法显示任何内容。 在苹果的文档中很明显:
...自定义键盘只能在其UIInputViewController对象的主视图内进行绘制...无法在自定义键盘的主视图的顶部边缘上方显示按键图稿,就像在您点击和时系统键盘在iPhone上一样在第一行中按住一个键。
至于键盘内的消息,有一些有用的库可以帮助我们。 例如https://github.com/scalessec/Toast和https://github.com/sergeylenkov/PTHintController 。
最后我解决了这个问题。 这不是最佳解决方案,但至少我得到了想要的效果。
我创建了一个View
模拟Toast
在xib
文件,并将其设置为hidden
。
选中该项目后,我将显示“伪造” 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;
});
我不知道这是否是一个好的解决方案,但我确实必须为此找到解决方案。
对于Swift,您可以使用:
self.popUpView.isHidden = false
DispatchQueue.main.asyncAfter(deadline: .now() + 2.0) {
self.popUpView.isHidden = true
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.