【发布时间】:2015-12-16 05:33:17
【问题描述】:
除了表格视图中的配置之外,我的共享扩展不需要任何用户输入,因此我试图在 Safari 中显示视图时隐藏键盘。我可以在模拟器中很好地运行我的代码,但是当我在我的设备上进行测试时,我的 Share Extension 没有启动并且 Safari 挂起。
我尝试了几种方法来阻止键盘启动
-(void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
self.textView.text = @"\n Place Holder Text";
self.textView.editable = NO;
}
同样,我在 loadView 中尝试过,因为那是 SLComposeServiceViewController 设置 textView 和 textView 委托。
-(void)loadView{
[super viewWillAppear:animated];
self.textView.text = @"\n Place Holder Text";
self.textView.editable = NO;
}
只是为了好玩
-(BOOL)textViewShouldBeginEditing:(UITextView *)textView{
return NO;
}
所有这些都可以在模拟器上运行,但不能在我的设备上运行。
会发生什么?
我(或 Safari)缺少某种通知或观察者
【问题讨论】:
-
如果我没记错的话,该类是由 iOS 生成的,具有只读的
textField,因此将其editable状态设置为NO可能不会有任何帮助。我想你可以尝试resignFirstResponder当扩展支持首先弹出时。但是,如果您不想使用SLComposeServiceViewController提供的开箱即用解决方案,那么继承UIViewController并创建自己的自定义视图控制器将是最简单的方法。
标签: ios objective-c cocoa-touch slcomposeviewcontroller ios8-share-extension