iOS 分享扩展关闭键盘
iOS share extension dismiss keyboard
我正在为我的应用程序实施共享扩展,到目前为止一切顺利,除了我似乎无法关闭使用默认设置自动打开的键盘 layout/storyboard。
我保留默认值 design/layout (SLComposeServiceViewController),其中包括预览图像和 UITextview,UITextview 会自动获得焦点并打开键盘。
通常这很好,但是如果您没有登录我的应用程序,我会显示一个 UIAlertController 提示您需要登录才能共享。问题是键盘与警报同时打开。
我已经在 viewDidLoad、viewDidAppear 和 viewWillAppear 中尝试了 [self.view endEditing:YES];
和 [self.textView resignFirstResponder];
,但没有成功。
找到答案了!我没有仔细阅读文档...
我必须在 -(void)presentationAnimationDidFinish
中完成 [self.textView resignFirstResponder];
我的方法是使用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;
}
我正在为我的应用程序实施共享扩展,到目前为止一切顺利,除了我似乎无法关闭使用默认设置自动打开的键盘 layout/storyboard。
我保留默认值 design/layout (SLComposeServiceViewController),其中包括预览图像和 UITextview,UITextview 会自动获得焦点并打开键盘。
通常这很好,但是如果您没有登录我的应用程序,我会显示一个 UIAlertController 提示您需要登录才能共享。问题是键盘与警报同时打开。
我已经在 viewDidLoad、viewDidAppear 和 viewWillAppear 中尝试了 [self.view endEditing:YES];
和 [self.textView resignFirstResponder];
,但没有成功。
找到答案了!我没有仔细阅读文档...
我必须在 -(void)presentationAnimationDidFinish
[self.textView resignFirstResponder];
我的方法是使用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;
}