Note:

有关IOS 4.3版的解决方案,请参阅已接受的答案(不是投票最多的答案).

question是关于在iPad键盘上发现的一种行为,如果在与导航控制器的模式对话框中显示,它拒绝被忽略.

基本上,如果我向导航控制器展示以下内容:

navigationController.modalPresentationStyle = UIModalPresentationFormSheet;

键盘拒绝被解雇.如果我注释掉这行,键盘可以正常离开.

...

我有两个文本字段,用户名和密码;用户名有一个"下一步"按钮,密码有一个"完成"按钮.如果我在模态导航控制器中演示,键盘不会消失.

WORKS个个

broken *b = [[broken alloc] initWithNibName:@"broken" bundle:nil];
[self.view addSubview:b.view];

DOES NOT WORK

broken *b = [[broken alloc] initWithNibName:@"broken" bundle:nil];
UINavigationController *navigationController = 
[[UINavigationController alloc]
 initWithRootViewController:b];
navigationController.modalPresentationStyle = UIModalPresentationFormSheet;
navigationController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:navigationController animated:YES];
[navigationController release];
[b release];

如果我删除导航控制器部分,并将"b"本身表示为模式视图控制器,它就可以工作.导航控制器有问题吗?

WORKS个个

broken *b = [[broken alloc] initWithNibName:@"broken" bundle:nil];
b.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:b animated:YES];
[b release];

WORKS个个

broken *b = [[broken alloc] initWithNibName:@"broken" bundle:nil];
UINavigationController *navigationController = 
    [[UINavigationController alloc]
         initWithRootViewController:b];
[self presentModalViewController:navigationController animated:YES];
[navigationController release];
[b release];

推荐答案

在以模态表示的视图控制器中,只需重写disablesAutomaticKeyboardDismissal以返回NO:

- (BOOL)disablesAutomaticKeyboardDismissal {
    return NO;
}

Ios相关问答推荐

检测touch 并忽略其他手势SWIFT SceneKit

Xcode 15模拟器用x86_64编译

保存和读取登录到 keys 串不工作 IOS swift

在Xcode 15中为具有@Binding的视图创建SwiftUI #预览的方法

@MainActor 类的扩展是主要演员吗?

从 PHAssets 生成图像时,iOS 应用程序因内存问题而崩溃

iOS 16 堆栈视图中按钮的奇怪动画

NSOperation 有延迟 - 它是异步的还是同步的?

视图之间的 SwiftUI 过渡,没有过渡

类型任何视图不能符合具有泛型的协议上的视图

带有属性包装器的不可用属性

try 在 iOS 中分发 Flutter 应用程序时出现Invalid Provisioning Profile Signature错误

如何在不同设备的segment控制中管理文本大小(text size)?

iOS:应用程序在安装应用程序时未征求用户许可.每次都获得 kCLAuthorizationStatusNotDetermined - Objective-c & Swift

在 iPhone 中将 UIViewController 显示为弹出窗口

所有小部件的Flutter 填充?

核心数据 - 无法在路径加载优化模型

使用 swift 将本地 html 加载到 UIWebView

使用 Swift 在一个 ViewController 中强制横向模式

openURL:在 iOS 10 中已弃用