iOS 共享扩展关闭键盘

问题描述 投票:0回答:3

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

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

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

我在 viewDidLoad、viewDidAppear 和 viewWillAppear 中尝试过

[self.view endEditing:YES];
[self.textView resignFirstResponder];
,但没有成功。

ios ios8 ios8-extension ios8-share-extension
3个回答
2
投票

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

我必须在

[self.textView resignFirstResponder];
中做
-(void)presentationAnimationDidFinish


0
投票

我的方法是使用

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;
}

0
投票

您的

ShareViewController
继承自
SLComposeServiceViewController
。这就是导致键盘出现的原因,它有一个
textView

SLComposeServiceViewController
替换为简单的
UIViewController
,键盘将不会出现。

在简单的

UIViewController
内重新创建该控制器内的 UI。这将使您对响应者有更多的权力。

© www.soinside.com 2019 - 2024. All rights reserved.