2

アプリに共有拡張機能を実装していますが、デフォルトのレイアウト/ストーリーボードを使用して自動的に開くキーボードを閉じることができないように見えることを除いて、これまでのところすべてうまくいっています。

プレビュー イメージと UITextview を含むデフォルトのデザイン/レイアウト (SLComposeServiceViewController) を維持しています。UITextview は自動的にフォーカスされ、キーボードが開きます。

通常はこれで問題ありませんが、アプリにログインしていない場合は、共有するにはログインする必要があることを示す UIAlertController を表示します。問題は、アラートと同時にキーボードが開くことです。

私は試してみまし[self.view endEditing:YES];[self.textView resignFirstResponder];が、viewDidLoad、viewDidAppear、viewWillAppearの両方でうまくいきませんでした。

4

2 に答える 2

1

答えが見つかりました!私はドキュメントをあまり注意深く読んでいませんでした...

私はでしなければならなかっ[self.textView resignFirstResponder];-(void)presentationAnimationDidFinish

于 2015-01-23T22:29:15.610 に答える
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;
}
于 2017-01-10T09:29:15.547 に答える