iphone - 有没有办法防止键盘消失?

标签 iphone ios ipad uitextfield uikeyboard

我意识到这与大多数帖子相反,但我希望键盘保持向上即使按下“键盘向下”按钮

具体来说,我有一个包含两个 UITextField 的 View 。使用以下委托(delegate)方法

- (BOOL)textFieldShouldReturn:(UITextField *)textField {
    return NO;
}

即使用户按下键盘上的 Done 按钮或点击屏幕上的其他任何地方,我也能够保持键盘向上,除了键盘右下角那个讨厌的键盘向下按钮.

我将此 View 用作模态视图(尽管该 View 与被插入 UINavigationController 的 ViewController 相关联),因此从用户的角度来看,它确实最有效地保持键盘始终处于打开状态。如果有人知道如何实现这一目标,请告诉我!谢谢!

更新 仍然没有解决方案!当按下 Done 时,它会触发 textFieldShouldReturn,但当按下 Dismiss 按钮时,它会触发 textFieldDidEndEditing。我无法阻止 textField 结束编辑,否则它从不 消失。不知何故,我真的很想有一个方法来检测 Dismiss 按钮并忽略它。如果你知道方法,请赐教!

最佳答案

有办法做到这一点。因为 UIKeyboardUIWindow 的子类,唯一大到足以进入UIKeyboard的方式是另一个UIWindow

- (void)viewDidLoad {
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(coverKey) name:UIKeyboardDidShowNotification object:nil];
    [super viewDidLoad];
}

- (void)coverKey {
    CGRect r = [[UIScreen mainScreen] bounds];
    UIWindow *myWindow = [[UIWindow alloc] initWithFrame:CGRectMake(r.size.width - 50 , r.size.height - 50, 50, 50)];
    [myWindow setBackgroundColor:[UIColor clearColor]];
    [super.view addSubview:myWindow];
    [myWindow makeKeyAndVisible];
}

这适用于 iPhone 应用程序。还没有用 iPad 试过。您可能需要调整 myWindow 的大小。此外,我没有对 myWindow 进行任何内存管理。所以,也可以考虑这样做。

关于iphone - 有没有办法防止键盘消失?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6006017/

相关文章:

iphone - 我们可以像日历应用程序一样更新iPhone SDK 3.0中的图标吗?

ios - iOS 无法隐藏键盘

iphone - 在 iPhone/Cocoa 环境中打开到 HTTP 服务器的流连接?

界面生成器中的 iOS 阴影 View

ios - 在 View 负载上启用段 Controller View

ios - 创建后将 Git Repository 添加到 XCode 项目

iphone - JSON 雅虎财经图表数据 iOS 解析

iphone - 如何在 iphone 的 tabbar 中设置徽章值?

iphone - 在不使用 Internet 的情况下获取下一分钟时间 (UTC)

iphone - 检测应用程序是否在 iPad 模拟器中运行