【问题标题】:iPad keyboard will not dismiss from a Facebook dialog called from a view controller with a model view controller style UIModalPresentationFormSheetiPad 键盘不会从具有模型视图控制器样式 UIModalPresentationFormSheet 的视图控制器调用的 Facebook 对话框中关闭
【发布时间】:2013-10-01 17:14:56
【问题描述】:

我已经研究并实施了关于模态视图控制器的键盘关闭问题的建议,并且在我的 UINavigationController 中有以下代码

- (BOOL)disablesAutomaticKeyboardDismissal
{
    return NO;
}

这工作正常,除了当我在用户不关闭键盘时调用以下 Facebook 对话框时

    [FBWebDialogs presentRequestsDialogModallyWithSession:...]

我已经尝试了所有可以在 SO 上找到的方法来杀死键盘;我走过每一个风景;我已经尝试将模型转换到新的视图控制器,然后调用它;但没有任何接缝可以工作。它就像键盘不再附加到视图一样接缝,所以没有什么可以再关闭它了。

当我从其他代码调用该对话框时,我没有这个问题。

感谢您的帮助!

【问题讨论】:

    标签: iphone ios objective-c facebook ipad


    【解决方案1】:

    如果视图控制器出现在导航控制器中,上述“修复”将不起作用;

    您必须使用此“修复”创建一个类别:

    头文件 - 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/

    【讨论】:

    • 修复了它。我对 UINavigationController 进行了子类化,这就是我添加 disablesAutomaticKeyboardDismissal 代码的地方。这适用于大多数情况,除了 Facebook 对话框
    猜你喜欢
    • 2011-07-17
    • 1970-01-01
    • 2013-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多