iphone - iPad 键盘不会从具有 Model View Controller 样式 UIModalPresentationFormSheet 的 View Controller 调用的 Facebook 对话框中关闭

标签 iphone ios objective-c facebook ipad

我研究并实现了有关模态视图 Controller 的键盘关闭问题的建议,并在我的 UINavigationController 中包含以下代码

- (BOOL)disablesAutomaticKeyboardDismissal
{
    return NO;
}

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

    [FBWebDialogs presentRequestsDialogModallyWithSession:...]

我已经尝试了所有我能在 SO 上找到的东西来杀死键盘;我已经浏览了每个 View ;我已经尝试将模型转换到新的 View Controller 然后调用它;但没有任何接缝工作。它的接缝就好像键盘不再附加到 View 上一样,所以没有什么可以再将其关闭。

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

感谢您的帮助!

最佳答案

如果 View Controller 显示在导航 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/

关于iphone - iPad 键盘不会从具有 Model View Controller 样式 UIModalPresentationFormSheet 的 View Controller 调用的 Facebook 对话框中关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19016331/

相关文章:

具有辅助功能的 iOS UITableView 编辑

ios - 如何使用从套接字连接加载的数据初始化视频对象-iOS

objective-c - 当条目更新但未保存时,核心数据会重复

iphone - 在 iPhone GPU 上解码视频帧

iphone - iPhone模拟器在哪里存储已安装的应用程序?

ios - 如何隐藏SFSafariViewController?

ios - 如何防止 UIAlertViewController 的 UITextField 中出现特殊字符?

iOS swift : Transition Animation on same View Controller

ios - 检测旋转的 UIView 之间的碰撞

objective-c - 使用 NSTimer 安排多个日常事件?