1

モーダルビューコントローラーからのキーボードの非表示の問題に関するアドバイスを調査して実装しました。UINavigationController に次のコードがあります。

- (BOOL)disablesAutomaticKeyboardDismissal
{
    return NO;
}

ユーザーがキーボードを閉じないときに次の Facebook ダイアログを呼び出す場合を除いて、これは正常に機能します。

    [FBWebDialogs presentRequestsDialogModallyWithSession:...]

私はキーボードを殺すためにSOで見つけることができるすべてを試しました。それぞれのビューについて説明しました。新しいView Controllerへのモデル移行を試みてから、それを呼び出しました。しかし、何もうまくいきません。キーボードがビューにアタッチされていないかのように継ぎ目があるため、それを却下するものはもうありません。

他のコードからそのダイアログを呼び出すと、この問題は発生しません。

ご協力いただきありがとうございます!

4

1 に答える 1

1

View ControllerがNavigation Controller内にある場合、上記の「修正」は機能しません。

この「修正」でカテゴリを作成する必要があります。

ヘッダー ファイル - UINavigationControllerResponderFix.h:

#import <Foundation/Foundation.h> 
@interface UINavigationController (ResponderFix)

-(BOOL)disablesAutomaticKeyboardDismissal;

@end

実装ファイル:

#import "UINavigationControllerResponderFix.h"

@implementation UINavigationController (ResponderFix)

-(BOOL)disablesAutomaticKeyboardDismissal{
    return NO;
}

@end

次に、[applicationname]-Prefix.pch を変更します

#ifdef __OBJC__
    #import <UIKit/UIKit.h>
    #import <Foundation/Foundation.h>

    #import "UINavigationControllerResponderFix.h"
#endif

それでおしまい!

これは、UINavigationController のすべてのインスタンスを調整することです。

上記すべて - ここから引用: http://www.danielhanly.com/blog/tutorial/resignfirstresponder-bug-in-uimodalpresentationformsheet/

于 2013-09-26T09:18:41.030 に答える