即使在呈现模式视图控制器时如何保持键盘存在?

2023-12-02

我已经显示了一个模态视图控制器,并且 UITextView 成为第一响应者并显示键盘。

加载此屏幕后,用户可以在提交之前对其输入进行分类。 这是通过顶部呈现的另一个模态视图控制器来实现的。

当第二个出现时,键盘将消失,用户进行选择,然后当初始 UITextView 再次成为第一响应者时重新出现。

如何在不关闭键盘的情况下呈现第二个模态视图控制器?

编辑:我已经实现了 UITextViewDelegate 的一部分,但仍然没有得到所需的结果。

- (BOOL)textViewShouldEndEditing:(UITextView *)textView {
    return NO;
}

你不能使用presentModalViewController:animated:。您必须将模态视图放在一个单独的 UIWindow 中,将第二个 UIWindow 的 windowLevel 设置为较高的值(例如 UIWindowLevelStatusBar),然后自己在屏幕上和屏幕外设置动画。您根本不需要第二个视图控制器。

在您的 XIB 中,创建一个新的顶级 UIWindow 对象。将您的第二个视图放入此窗口中。将窗口连接到视图控制器上的插座。 (我给插座打了电话otherWindow在我的测试代码中但是overlayWindow会是一个更好的名字。需要声明出口strong or retain.)

在您的视图控制器中,实现以下方法:

- (IBAction)presentOverlay:(id)sender
{
    CGRect frame = [UIScreen mainScreen].applicationFrame;
    frame.origin.y += frame.size.height;
    self.otherWindow.frame = frame;
    self.otherWindow.windowLevel = UIWindowLevelStatusBar;
    self.otherWindow.hidden = NO;
    [UIView animateWithDuration:.25 animations:^{
        self.otherWindow.frame = [UIScreen mainScreen].applicationFrame;
    }];
}

- (IBAction)dismissOverlay:(id)sender
{
    [UIView animateWithDuration:.25 animations:^{
        CGRect frame = [UIScreen mainScreen].applicationFrame;
        frame.origin.y += frame.size.height;
        self.otherWindow.frame = frame;
    } completion:^(BOOL completed){
        self.otherWindow.hidden = YES;
    }];
}

使用它们来呈现和关闭覆盖视图。

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

即使在呈现模式视图控制器时如何保持键盘存在? 的相关文章

  • 在 iOS 中录制音频并永久保存

    我制作了 2 个 iPhone 应用程序 可以录制音频并将其保存到文件中并再次播放 其中之一使用 AVAudiorecorder 和 AVAudioplayer 第二个是苹果的在这里说话 http developer apple com l
  • 从 Core Data、iOS 获取最后插入的项目

    有没有办法获取核心数据数据库中最后插入的项目 这将返回最后插入的对象 setFetchLimit 1 和 setFetchOffset 所有条目数 1
  • iPhone 标签栏上的未读计数

    在 Cocoa Touch 上实现 TabBar 上图标的未读计数的最佳方法是什么 我想模仿 SMS 或邮件应用程序的行为 向我的应用程序的用户显示未读消息计数 并使用包含数字的红点 您正在寻找的属性称为徽章 您可以通过执行以下操作来设置它
  • 从 NSError 返回 NSString

    我正在使用NSURLRequest我的 iPhone 应用程序中的类 调用它的方法返回一个NSString这对于连接正常时非常有用 但问题是我需要将 NSError 转换为 NSString 以便我可以将其返回或运行一些if 对此的声明 有
  • iPhone SDK - 在后台线程中运行重复进程

    我有一个iPhone我想在其中每隔一段时间在后台执行一个方法的应用程序1第二 所以在我的主线程中 我有以下代码UIViewController viewDidLoad NSTimer timerWithTimeInterval 1 0 ta
  • 如何在ios中以编程方式添加水平间距和垂直间距?

    我在 ios 8 中创建了一个应用程序 因为我有 4 个可垂直使用的标签 它应该在某些条件下更改位置 所以我已禁用自动布局并以编程方式设置约束 现在的问题是 我可以设置水平和垂直位置 宽度和高度的约束 但我找不到任何方法来添加标签之间的水平
  • 通过 iPhone 连接到 AT&T 无线网络的谷歌静态地图无法工作 [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 最近 当我的 iPhone 连接到 AT T 无线网络时 我在检索静态地图时遇到了问题 但是 当我连接到本地 WiFi 时工作正常 上周日停止工作了几
  • 应用未能及时恢复

    我在一个非常具体的场景中遇到 未能及时恢复 崩溃 我认为与看门狗相关 仅在从后台恢复时 并且仅在进入后台后在很短的时间内执行此操作 a最多几秒钟 这似乎是相关的崩溃日志 Incident Identifier E30F2238 5B15 4
  • 以编程方式更改 iPhone 背景

    是否可以通过代码更改 iPhone 背景 如果你写一个新的png到 User Library LockBackground png然后打电话notify post com apple language changed 设备将重新启动 并且您
  • 蓝牙 4.0 与较旧的蓝牙

    我正在尝试使用蓝牙 4 0 模块实现一个应用程序 我想知道将此应用程序与包含简单蓝牙 2 1 EDR 模块的 Iphone 3GS 一起使用是否能让我利用 4 0 模块中的低功耗 谢谢您的回答 蓝牙 4 0 是标准 其中包括经典蓝牙基本速率
  • 获取 Cocoa 中文件的类型

    我成功找到了指定文件的扩展文件类型 JPEG 图像 TIFF 图像等 但我正在寻找更通用的东西 可以对 大类别 中的文件进行分类 如图像 moovies 文本文件等 有没有办法在可可 或 Objective C 中实现这一点 感谢您的帮助
  • 推送/呈现模态视图控制器

    我的视图控制器中有一个表 我们称之为 TVC1 我使用了 TVC1 中的行 以便用户除了 TVC1 上的数据之外还可以输入更多数据 因此 当有人点击 TVC1 中的特定行时 它将显示另一个视图控制器 我们称之为 TVC2 然而 当显示TVC
  • Parse.com - 获取 [PFUser currentUser] 中包含的指针数据

    我正在使用 Parse com iOS SDK 并且我不知道需要调用什么方法来确保 PFUser currentUser 包含其中包含的每个指针的数据 这可能很简单 但是 作为这个平台的初学者 我找不到解决方案 只是为了澄清一下 我试图在下
  • iPhone:在命令行 (Mac OS X) 中压缩 .app 文件会删除 CodeSigning

    我正在尝试使用 TeamCity 对我的 iPhone 应用程序进行简单的构建自动化 但遇到了这个棘手的问题 当我从构建文件夹中手动拾取并安装 app 文件时 效果很好 与 iTunes 顺利同步 我可以在手机上看到该应用程序 但是 当我尝
  • ObjC <-> Swift 桥接和工厂方法

    我想从 Swift 使用一些 Objective C 类 由于超出了这个问题范围的原因 我的班级init方法被标记为不可用 相反 有一个工厂方法 这是我的班级的简化形式 interface MyClass NSObject instance
  • 将第 3 方库添加到 iPhone 应用程序时如何设置“标题搜索路径”的路径

    我想添加第 3 方库语音转文本 https github com todoroo iPhone Speech To Textto my Xcode项目 我只是拖xcodeproj文件在我的 iPhone 项目中 然后我按照目标依赖项 将二进
  • 自定义 UISearchDisplayController

    替代文本 http img210 imageshack us img210 5992 searchdisplaycontroller png http img210 imageshack us img210 5992 searchdispl
  • 是否有一个类可以获取应用程序中的默认图片查看器?

    我不想访问 iPhone 上的图像 我想显示我的应用程序中的图像 但就像您查看 iPhone 相册中的图片一样 使用所有捏合和缩放控件等 这可能吗 我认为可能 偶然 有像 AVMediaPlayer 类这样的类可以做到这一点 谢谢 汤姆 如
  • AVAssetExportSession 输出文件

    AVAssetExportSession 输出文件应该是什么样子 我正在尝试压缩 ALAsset 项目中的视频 但它不起作用 我猜输出文件与它有关 这是我正在使用的代码 NSString destinationPath NSHomeDire
  • iOS 中的词干 - 不适用于单个单词

    我在用NSLinguisticTagger用于词干提取 我能够获得句子中单词的词干 但无法获得单个单词的词干 以下是我正在使用的代码 NSString stmnt i waited NSLinguisticTaggerOptions opt

随机推荐

  • 有没有办法创建 ColoredCheckbox 组件?

    我正在尝试创建一个可重复使用的material ui彩色复选框组件 您将十六进制颜色传递给组件 它会影响复选框颜色 到目前为止我已经明白了 但我想不出一种将颜色传递给 withStyles 的方法 const WhiteCheckbox w
  • 提取两个相似标题之间具有特定单词的段落

    我的文本文件包含类似这样的段落 summary A result oriented and dedicated professional with three years experience in Software Development
  • 将目标添加到导航栏中的后退按钮

    我正在设置标题和后退按钮的值UINavigationBar如下 self navigationItem title Post self navigationController navigationBar setTitleTextAttri
  • 是否可以从 C# 读取内部 CPU 滴答计数器?

    我有一个多线程 C 程序 我需要记录每个线程在特定自旋等待锁中花费的时间间隔 我知道有一些方法可以从 C 或汇编程序执行此操作 但是是否可以以某种方式直接从 C 访问相同的计数器 也就是说 无需通过 Stopwatch 类 我假设调用 St
  • 如何重命名 xcode 方案并保持 Git 提交正常工作?

    更新 我将此作为错误报告给 Apple 他们修复了它 所有这些在 xCode 4 5 中似乎都可以正常工作 历史学家可以继续读下去 我非常想在 xCode 4 3 中重命名 iOS 项目的构建方案 我已成功重命名该项目 然后我可以重命名目标
  • 获取星期一和星期日等..作为 Unix 中任何日期的一周参数

    如何获取某个日期一周中的星期一和星期日的日期 这给出了 最后 星期一的日期 date dlast monday Y m d 我想传递一个日期作为参数查找该周的星期一和星期日 基本上 我想要一周的周日和周一 任何日期 不仅仅是上周一 尝试这个
  • 如何将字符串从 HTML 传递到 Python 并返回到 HTML

    背景 我创建了一个非常简单的前端 用户可以在其中输入字符串 输入并单击 检查 按钮后 我想将此字符串作为 JSON 传递到 python 字符串 在其中执行 SQL 查找 根据 SQL 的外观 python 脚本应该传递一个布尔值 该值应该
  • 获取编译时已知的特定长度的切片

    在此代码中 fn unpack u32 data u8 gt u32 assert eq data len 4 let res data 0 as u32 data 1 as u32 lt lt 8 data 2 as u32 lt lt
  • 带有 C# ImageFormat 类的 WebP 图像

    我正在从网络下载图像以将其保存在本地 它适用于任何其他图像格式 但当我尝试读取 WebP 图像时 下面的方法会失败并出现参数异常 private static Image GetImage string url try HttpWebReq
  • 包容性和排除性的区别?

    我觉得这是一个简单的概念 但我在包容性和排他性方面遇到了麻烦 特别是关于随机数生成器 例如 如果我想要一个值 2 8 包括 2 和 8 那么这将是包容性的 对吗 该代码看起来怎么样 像这样的事情 nextInt 8 2 2 例如 如果我想要
  • 从一元数据创建二元(关系)数据

    我的冲突数据看起来像这样 conflict ID country code SideA 1 1 1 1 2 1 1 3 0 2 4 1 2 5 0 现在我想将其变成如下所示的二元冲突数据 SideA 1 应该是country code 1
  • 如何使用 PHP 创建随机字符串?

    我知道 PHP 中的 rand 函数生成随机整数 但是生成随机字符串的最佳方法是什么 例如 原始字符串 9 个字符 string abcdefghi 限制为 6 个字符的随机字符串示例 string ibfeca 更新 我发现了大量这些类型
  • 使用 documentFragment 的 IE 性能不佳

    为了测试 DOM 操作与innerHTML 我使用了这个小测试方法documentFragment web page 追加 10000href元素到一个div元素 对于 Chrome 或 Firefox 性能还可以 但在 IE 10 9 8
  • PhpStorm 和 XAMPP - 调试未启动

    我在使用 PhpStorm 调试器时遇到了困难 我阅读了他们所有的文档 并且我已经正确设置了调试 根据phpinfo 调试定制安装报告和 PhpStorm 分析 但是 无论我尝试什么 调试器都不会触发 我的设置如下 我将 XAMPP 文档根
  • 如何传递定义为常量的数组的引用?

    我定义了哈希和数组常量 当将它们传递给函数时 我必须将它们作为引用传递 不过我想知道正确的语法是什么 考虑这个例子 usr bin perl use strict use warnings use constant AC gt qw a b
  • 使用 sqlalchemy 查询特定 JSON 列 (postgres)

    我有一个带有 JSON 字段的模型 class Item db Model data db Column JSON nullable False 数据包含一些 JSON 例如 cost 10 00 passengers 2 surcharg
  • 后台代理静态变量值不同

    我有一个应用程序 可以显示一些数据并启动后台代理来动态更新动态图块 由于动态图块内容是在后台代理中使用从主线程填充的一些变量创建的 因此我决定 也许这是一个错误的决定 但这是我认为唯一合理的决定 编写一个具有静态变量和属性的类以在主线程之间
  • Laravel 5.3 使用自定义验证

    我使用 Laravel 5 3 我想使用表单验证来测试用户密码的哈希值 这是我的代码 validator Validator make request gt all old password gt required max 20 min 6
  • jpa返回哪些集合?

    JPA 在本例中为 Eclipselink 是否总是返回 IndirectList 其中实体有一个列表 该列表可以吗 或者应该将其转换为另一个列表 可能是链接列表 Analysis 如果我们看一下 EclipseLink 的间接列表的 AP
  • 即使在呈现模式视图控制器时如何保持键盘存在?

    我已经显示了一个模态视图控制器 并且 UITextView 成为第一响应者并显示键盘 加载此屏幕后 用户可以在提交之前对其输入进行分类 这是通过顶部呈现的另一个模态视图控制器来实现的 当第二个出现时 键盘将消失 用户进行选择 然后当初始 U