iPad 版 iOS 8.3 上 UIAlertView 关闭后键盘会弹出

2024-01-04

随着最新的 iOS 8.3 版本的发布,我们的应用程序开始出现奇怪的行为。

完成文本字段编辑后,用户可以单击关闭按钮,弹出一个UIAlertView。当用户点击时discard在警报视图中,警报视图和当前视图被忽略。但不知怎的,键盘在视图消失后又出现了,这对用户来说很烦人。

经过一些调试后,似乎在关闭视图之前用户访问的最后一个文本字段显示了键盘。我尝试了各种方法endEditing对于许多地方的当前视图(在显示之前UIAlertView,单击中的按钮后UIAlertView;我什至将焦点设置到视图的另一个 UI 元素)。它没有解决问题。

但对于这个特定问题,我不确定这是一个常见问题还是我们需要解决的问题。在 iOS 8.3 之前一切都运行良好。

我们明白UIAlertViewiOS 8 已弃用。我们开始迁移到UIAlertController。但如果有任何解决方法,我们很乐意听到。

这是一些代码片段。

- (IBAction)closeTapped:(UIButton *)sender
{
    // try to resign first responder
    // [self.tfName resignFirstResponder];
    // [self.tfPosition resignFirstResponder];
    [self.view endEditing:YES];

    if(self.orderDetails.isOpen && self.orderItemChanged)
    {
        UIAlertView* saveAlert = [[UIAlertView alloc] initWithTitle:@"Unsaved Changes"
                                                            message:@"Your changes have not been saved. Discard changes?"
                                                           delegate:self
                                                  cancelButtonTitle:@"Cancel"
                                                  otherButtonTitles:@"Save", @"Discard", nil];
        [saveAlert show];
    }
    else
    {
        [self close];
    }
}

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
    switch(buttonIndex)
    {
        case 1: // Save
        {
            [self save];
            break;
        }
        case 2: // Discard
        {
            [self close];
            break;
        }
    }
}

- (void)close
{   
    [self.delegate dismissEditOrderItemVC];
}

如果您的部署目标是 iOS 8+,请尝试UIAlertController.

这是一个快速修复UIAlertView:当您的文本字段或文本视图放弃第一响应者时,延迟显示警报视图的调用。

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

iPad 版 iOS 8.3 上 UIAlertView 关闭后键盘会弹出 的相关文章

随机推荐

  • WCF 服务中的 System.DirectoryServices.AccountManagement.PrincipalContext 和模拟

    与PrincipalContext在 WCF 服务背后的代码中 WCF 服务正在模拟 以允许 直通 类型的身份验证 虽然我用 Active Directory 做的其他事情 主要是System DirectoryServices Proto
  • 位图比例破坏质量

    我为 Android Wear 制作了一个表盘 但问题是图像缩放 当我调整背景 标记和小工具的图像大小时 它们的质量会降低 例如 我将 480x480 背景图像放在drawable nodpi文件夹中 我也尝试过其他dpi 然后像这样重新缩
  • telnet发送http请求[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我正在使用 telnet 发送 http 请求 如下所示 telnet gt open 192 168 4 135 8087 Trying 192 1
  • 在 WooCommerce 上强制使用优惠券字段

    我想知道是否可以在 WooCommerce 上强制使用优惠券字段 我知道使用函数可以做到这一点 但这略高于我当前的技能水平 所以我想知道您是否可以给我一个如何完成此操作的分步版本 任何答案将不胜感激 我不知道该功能 但您可以修改插件以通过以
  • 将 XML 数组输出为纯 XML

    我有一个脚本 它使用 CURL 收集 4 个 URL XML 并返回一个包含 4 个项目的数组 每个项目包含 URL 的结果 这是数组 array 3 0 gt string 41772
  • 放大镜在 UITextField 中显示不相关的内容

    我在 Xamarin 中开发了一个 iOS 应用程序 我在 UIScrollview 中有几个 UITExtFields 当用户触摸 UITetField 时 我设置滚动视图的 contentOffSet 以便在键盘出现时它可以可见 thi
  • 优化查询:DBMS_METADATA.GET_DDL (Oracle)

    我想获取所有表的所有表定义 我想快速完成 这是我经常运行的脚本的一部分 我使用的是oracle 11g 我有700张表 在普通的 jdbc 代码上 需要 4 分钟 并且执行以下操作 s con statement select DBMS M
  • Go 如何在 make 或 new 调用中分配内存?

    当我使用 make 或 new 调用创建新切片或结构时 s make int64 10 100 o new MyStruct Go 通过内存分配系统调用分配多少内存 它是否预先分配内存 以便后续调用不会触发新的系统调用 我问这个问题是因为我
  • 使用 Dapper 或通过 Linq 填充一对多关系

    实体 AllSalesTerritory包含List
  • 为什么使用负步长的字符串切片会打印空字符串? [复制]

    这个问题在这里已经有答案了 我有以下程序 str abcd l len str str2 str l 1 0 1 print str2 str2 str l 1 1 1 print str2 为什么第一个print output dcb和第
  • 使用 fortran 覆盖文件

    我正在使用 Fortran 90 程序来写入文件 该文件的第一行应该指示剩余文件中的行数 当满足某个标准且无法事先确定时 程序将写入该文件 基本上 只有在运行结束后我才会知道总行数 我想按以下方式进行 1 打开文件并在第一行写入一些文本 例
  • 计算代码的失败次数!

    这真的很花我的时间 我找不到一种简单的方法来估计以下代码 循环 的 FLOPS 循环的单次迭代有多少 FLOPS float func float atominfo float energygridItem int xindex int y
  • 如何在java中将camelCase字符串转换为下划线,保留一些大写,其余的小写?

    如何在java中将驼峰式字符串转换为下划线并保留一些大写字母 我正在使用这段代码 String inputString Hi How areYouToday String result inputString replaceAll a z
  • nullglob 禁用路径名制表符补全

    我发现shopt s nullglob显然禁用了文件和目录的制表符补全 并且shopt u nullglob恢复它 为什么目录的制表符补全显然依赖于nullglob未设置 我正在使用 Bash4 2 37 1 release在 Debian
  • 使用 compojure 从数据库提供二进制文件

    我有以下路线定义 require compojure core as ccore ring util response as response def main routes ccore defroutes avalanche routes
  • 无法创建持久存储协调器

    我收到以下错误 Terminating app due to uncaught exception NSInternalInconsistencyExprojectception reason Managed object store fa
  • 每 X 秒从 ArrayList 更新一次 JLabel - Java

    我有一个简单的Java程序 它读取一个文本文件 用 空格 分割它 显示第一个单词 等待2秒 显示下一个 等等 我想在Spring中执行此操作或其他一些 GUI 关于如何使用 spring 轻松更新单词有什么建议吗 遍历我的列表并以某种方式使
  • C# 中 AVL 树的性能

    我用C 实现了一个AVL树 其插入矩阵如下 Number of Elements Time taken to insert sec 10 0 067 100 0 073 200 0 112 500 0 388 900 1 205 1000
  • 如何通过 Concourse CI 管道发送电子邮件?

    如何设置在 Concourse 中作业完成或失败时发送的电子邮件 您可以使用https github com pivotal cf email resource https github com pivotal cf email resou
  • iPad 版 iOS 8.3 上 UIAlertView 关闭后键盘会弹出

    随着最新的 iOS 8 3 版本的发布 我们的应用程序开始出现奇怪的行为 完成文本字段编辑后 用户可以单击关闭按钮 弹出一个UIAlertView 当用户点击时discard在警报视图中 警报视图和当前视图被忽略 但不知怎的 键盘在视图消失