iOS 共享扩展关闭键盘

Posted

技术标签:

【中文标题】iOS 共享扩展关闭键盘【英文标题】:iOS share extension dismiss keyboard 【发布时间】:2015-01-23 16:41:30 【问题描述】:

我正在为我的应用程序实现一个共享扩展,到目前为止一切都很好,只是我似乎无法关闭使用默认布局/故事板自动打开的键盘。

我保留了默认的设计/布局 (SLComposeServiceViewController),其中包括预览图像和 UITextview,UITextview 会自动获得焦点,从而打开键盘。

通常这很好,但如果你没有登录我的应用程序,我会显示一个 UIAlertController 说你需要登录才能分享。问题是键盘与警报同时打开。

我在 viewDidLoad、viewDidAppear 和 viewWillAppear 中都尝试了 [self.view endEditing:YES];[self.textView resignFirstResponder];,但没有成功。

【问题讨论】:

【参考方案1】:

找到答案了!我没有仔细阅读文档...

我必须在-(void)presentationAnimationDidFinish 中做[self.textView resignFirstResponder];

【讨论】:

【参考方案2】:

我的方法是使用UITextViewDelegate

- (void)viewDidLoad 
     [super viewDidLoad];
     self.textView.delegate = self;
     self.canShare = NO;
     [self.view setAlpha:0.0];

在您的检查登录逻辑中将 canShare 更改为 YES

- (void)checkLoggedIn 
    if ([[ShareAccountManager checkLoggedIn]) 
        self.canShare = YES;
        [self.view setAlpha:1.0];
    

并实现方法textViewShouldBeginEditing

- (BOOL)textViewShouldBeginEditing:(UITextView *)textView 
    if (self.canShare) 
        return YES;
    
    return NO;

【讨论】:

以上是关于iOS 共享扩展关闭键盘的主要内容,如果未能解决你的问题,请参考以下文章

用于自定义键盘的 iOS 键盘关闭按钮

ios键盘扩展中的Coredata

键盘扩展:是不是可以从股票 iOS 键盘继承功能和 UI?

iOS 开发之 - 关闭键盘 退出键盘 的5种方式

在自定义键盘扩展中播放标准 iOS 键盘点击声音

ios 8 键盘扩展设置包