旋转时键盘隐藏

2024-05-02

我正在开发 iPad 应用程序。在其中一个视图中,我有一个子视图,它在按钮点击事件时出现和消失。子视图包含一个UITextView。默认情况下,我将其设置为第一响应者,以便在视图出现时键盘立即出现。子视图也会消失UIKeyboardWillHideNotification被触发,即键盘被隐藏。

现在的问题是,一旦应用程序旋转,UIKeyboardWillHideNotification由系统触发,这反过来又使子视图消失。我希望键盘保留在屏幕上。

这是怎么回事,我该如何解决它!?

注意:视图和子视图都有单独的视图控制器。 UIKeyboardWillHideNotification 在子视图的视图控制器类中接收。


您可以在 shouldAutoRotate 方法中声明一个 BOOL 变量,并在调用它时设置该变量,然后在用于显示和隐藏子视图的选择器方法中,您可以使用一个简单的 if 条件来判断天气视图是否旋转。

像这样:

if(viewRotated)
{
    subView.hidden = YES;
}
viewRotated = NO;

编辑部分:
我不确定这段代码发生了什么,但它在我的一个应用程序中完美运行,该应用程序的 ipad 编码是由我的朋友完成的。

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    if(UIInterfaceOrientationIsPortrait(interfaceOrientation))
    {
        [[NSNotificationCenter defaultCenter] addObserver:self
                                                 selector:@selector(keyboardWillShow:) 
                                                     name:UIKeyboardWillShowNotification
                                                   object:nil];
        [[NSNotificationCenter defaultCenter] addObserver:self 
                                                 selector:@selector(keyboardWillHide:)
                                                     name:UIKeyboardWillShowNotification
                                                   object:nil];
    }
    else
    {

        [[NSNotificationCenter defaultCenter] removeObserver:self 
                                                        name:UIKeyboardWillShowNotification 
                                                      object:nil];
        [[NSNotificationCenter defaultCenter] removeObserver:self 
                                                        name:UIKeyboardWillShowNotification 
                                                      object:nil];
    }
    return YES;
}

如果您的 UIKeyboardWillHideNotification 未通过在此方法中再次添加这些通知而触发,您可以再次添加通知。

- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

旋转时键盘隐藏 的相关文章

随机推荐

  • 更改框架时 UITextView 光标位于框架下方

    我有一个UIViewCOntroller其中包含一个UITextView 当键盘出现时 我像这样调整它的大小 pragma mark Responding to keyboard events void keyboardDidShow NS
  • IE8 中的 JavaScript getter 支持

    查看此代码 这是一个非常简单的 JavaScript 对象 它是使用模块模式 http www yuiblog com blog 2007 06 12 module pattern 您可以在以下位置查看实时示例这个小提琴地址 http js
  • 弃用全局 JSX 命名空间后,JSX.Element 的正确返回类型替换是什么?

    In types react 全球JSX名称空间已被弃用 https github com DefinitelyTyped DefinitelyTyped blob 266eae5148c535e6b41fe5d0adb2ad23f302b
  • 如何在 Flex 3 中使用 htmlText 作为单选按钮标签

    我需要在 Flex 3 中为单选按钮显示一些粗体单词 如下所示 选项 1 你好world 选项2 Hello world 我看到单选按钮的标签没有 htmlText 属性 有人对完成这个要求有什么建议吗 Thanks Anji 蒂莫菲 达维
  • 用于反恶意软件代码的类 Aho-Corasick 算法

    有没有类似的算法阿霍 科拉西克 http en wikipedia org wiki Aho E2 80 93Corasick string matching algorithm 它可以同时匹配一组模式并适用于反恶意软件比较 所有已知的商业
  • PHP:正则表达式删除`a`或`–?

    我使用这个正则表达式从字符串输入中删除所有标点符号 pg url preg replace W pg url 但有些符号或特殊字符我无法删除它们 例如 当我将其传递到我的数据库注入时 它会变成 or 我怎样才能摆脱这些奇怪的东西 Thank
  • 如何使用 Laravel 查询生成器在 WHERE 条件周围添加括号

    我使用 Laravel 查询构建器根据用户的过滤器选择动态过滤数据 query DB table readings foreach selections as selection query gt orWhere id selection
  • MySQL使用BLOB的二进制存储VS OS文件系统:大文件、大数量、大问题

    我正在运行的版本 基本上 最新的一切 PHP 5 3 1MySQL 5 1 41阿帕奇 2 2 14操作系统 CentOS 最新 情况是这样的 我有数千个非常重要的文档 从客户合同到语音签名 客户对合同的授权录音 文件类型包括但不限于jpg
  • 将 React 值从子级传递给父级

    我正在努力解决一些可能非常简单的事情 我的父组件是一个搜索小部件 它需要使用在单独的抽屉组件中定义的过滤器 目前 用户可以输入搜索查询 该查询会调用 API 并且需要根据抽屉组件中的选择器来过滤结果 但是 我无法将父母和孩子联系起来以实现这
  • 如何在 ruby​​ 中后台运行多个外部命令

    给定这个 Unix shell 脚本 test sh bin sh sleep 2 sleep 5 sleep 1 wait 时间 test sh real 0m5 008s user 0m0 040s sys 0m0 000s 如何在 U
  • Java HashMap - 深拷贝

    我只是想找出如何进行深层复制的最佳解决方案HashMap 该映射中没有对象实现Cloneable 我想找到比序列化和反序列化更好的解决方案 看一眼深度克隆 在 Google Code 上您可以找到一个库 你可以阅读它https github
  • 布尔类?

    前几天我注意到我可以调用 boolean class 但不能调用 integer class 或其他基元 是什么让布尔值如此特别 注意 我说的是 boolean class 而不是 Boolean class 这是有道理的 呃 我尝试了in
  • CLR 2.0 和 CLR 4.0 之间的区别

    我阅读了无数关于 C 4 0 新功能的博客 帖子和 StackOverflow 问题 甚至新的 WPF 4 0 功能也开始公开出现 我找不到但想知道的内容 从 C WPF 开发人员的角度来看 CLR 4 0 有哪些主要变化 CLR 4 0
  • 是否保证 HttpSessionListener.sessionCreated() 在任何其他线程访问新会话之前完成?

    我正在尝试将值缓存在ConcurrentHashMap in the Session 为了避免竞争条件并确保在任何线程尝试使用我的地图之前创建它 我使用HttpSessionListener sessionCreated 将地图添加到Ses
  • Hive中group by后是否可以连接字符串字段

    我正在评估 Hive 需要在 group by 之后进行一些字符串字段连接 我找到了一个名为 concat ws 的函数 但看起来我必须显式列出所有要连接的值 我想知道是否可以在 Hive 中使用 concat ws 做这样的事情 这是一个
  • Actionscript 3主类是根,但不允许动画虚拟相机

    我最近开始使用 Actionscript 3 学习 Animate CC 我正在尝试使用 Animate 的 虚拟相机 功能 为我提供一个可以平移 旋转和缩放游戏的相机 当根没有子类时 很容易实现 Camera 例如 您可以在屏幕上放置一个
  • IntelliJ Idea 15 显示依赖包和项目包

    IntelliJ Idea 15 CE 在项目的包视图中显示来自库 依赖项的包 仅当项目的根包与某些依赖项的根包相同时才会发生这种情况 对于前 我的项目的根包是org 所以所有的依赖关系也有org包状org apache logging也被
  • 如何在 React 中使用原生 Node.js 插件

    我有一个反应项目 我想在其中使用this https github com svenpaulsen node ts3sdk client原生 Node js 插件 它是 C SDK 的包装器 我过去曾在 Electron 项目中成功使用过此
  • Jenkins 的 Gerrit 触发器找不到任何要构建的修订

    我在使用 Jenkins Gerrit 时遇到问题 这是我到目前为止得到的 Jenkins 中的 Gerrit 触发器配置似乎没问题 当我推送新的变更集时 Jenkins 构建就会启动 我用过这个 Jenkins Gerrit 触发器问题的
  • 旋转时键盘隐藏

    我正在开发 iPad 应用程序 在其中一个视图中 我有一个子视图 它在按钮点击事件时出现和消失 子视图包含一个UITextView 默认情况下 我将其设置为第一响应者 以便在视图出现时键盘立即出现 子视图也会消失UIKeyboardWill