关注 iPhone 上的下一个有效关键视图

2023-11-21

iPhone 是否有同等功能NSResponder方法-selectNextKeyView or -nextValidKeyView来自 Mac OS X?我知道关于-becomeFirstResponder方法,但是当视图层次结构变得更加复杂时,找出要在哪个视图上调用该方法并不是很漂亮。

一定有某种方法可以找到这个问题,因为当我在 iPhone 模拟器中按 Tab 时,焦点确实会正确转到下一个UITextField。这让我想知道当我按下 Tab 时到底会发生什么。有任何想法吗?

Update: 这正是我想要的,但是_nextKeyResponder是私有 API,所以是禁忌。有没有办法在不使用私有 API 的情况下进行“假”Tab 键按下?

- (BOOL)textFieldShouldReturn:(UITextField *)textField {
    // Try to find next responder
    UIView *nextResponder = (UIView *)[self.view _nextKeyResponder];

    if (nextResponder) {
        // Found next responder, so set it.
        [nextResponder becomeFirstResponder];
        [self.tableView scrollRectToVisible:[self.tableView convertRect:[nextResponder frame] fromView:nextResponder] animated:YES];
    } else {
        // Not found, so remove keyboard.
        [textField resignFirstResponder];
    }
    return NO; // We do not want UITextField to insert line-breaks.
}

没有公共 iOS 等效项NSResponder's -selectKeyView or -nextValidKeyView.

当第一响应者是一个实例时UITextField,按 Tab 键实例化一个私有子类UIEvent它被传递给-[UIApplication sendEvent:],这又调用-[UIView _nextKeyResponder].

-[UIView _nextKeyResponder]并不像你想象的那样工作。它将关键视图链视为一个循环,因此您的else永远不会到达块。出于同样的原因,即使有一个用于合成键盘事件的公共 API,您也可能不想使用它。

相反,您可能想要更像的东西UIWebView's UIToolbar基于表单的输入附件。它的按钮可以在适当的时候启用和禁用,并且它的委托处理实际的按钮按下操作。

然而,要以一般方式实现这样的委托,查看一下可能会有所帮助how -[UIView _nextKeyResponder]已实施.

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

关注 iPhone 上的下一个有效关键视图 的相关文章

  • 解析 URL 字符串以获取键值的最佳方法?

    我需要解析一个 URL 字符串 如下所示 ad eurl http www youtube com video 4bL4FI1Gz6s hl it IT iv logging level 3 ad flags 0 endscreen mod
  • 有没有办法在PC上开发iPhone游戏? [复制]

    这个问题在这里已经有答案了 可能的重复 如何使用 Windows 开发机为 iPhone 进行开发 https stackoverflow com questions 22358 how can i develop for iphone u
  • 如何从已知的PID中找到Bundle Identifier?

    我有任意正在运行的进程的 pid 进程标识符 如何找到关联应用程序的捆绑包标识符 如果有 我找到了一个仅适用于 10 6 的答案 NSRunningApplication runningApplicationWithProcessIdent
  • 何时为自定义视图创建 Interface Builder 插件?

    您何时建议使用插件将自定义视图集成到 Interface Builder 中 当浏览苹果的时候Interface Builder 插件编程指南 http developer apple com documentation Developer
  • iOS 6.0 Quicklook QLPreviewController 错误:“无法找到已加载代理的预览项目”

    我的应用程序一直使用 QLPreviewController 来显示所有类型的文件 在 iOS 5 x 中 它似乎做得很好 现在 在 iOS 6 0 中 我收到一个错误 它显示了控制器 但带有恒定的加载指示器 并且从未实际加载任何内容 日志
  • 在 uiwebview 中使用 javascript 将样式应用于文本范围

    我在 iPhone 上的 UIWebView 中将一些简单样式的文本显示为 html 它基本上是一系列段落 偶尔有强烈或强调的短语 在运行时 我需要将样式应用于文本范围 有一些类似的场景 其中之一是突出显示搜索结果 如果用户搜索了 某事 我
  • IOS 向特定用户推送通知?

    是否可以向特定设备发送 iOS 推送通知 我构建了一个论坛类型的应用程序 用户可以创建问题 其他人可以回答它 我需要向提出问题的特定用户发送 iOS 推送通知 通知他们问题已得到解答 这可以通过 PHP 或其他方法来完成吗 是的 您绝对可以
  • 如何在 Objective C 中将 html 数据转换为 PDF

    我想在 Objective C 中动态地将 html 转换为 pdf 转换它的最佳方法是什么 以便它保持与 html 相同的外观 提前致谢 Prasad UIGraphicsBeginPDFContextToFile https devel
  • ASIHTTPRequest 登录页面

    我尝试制作一个 iPhone 应用程序 可以登录到使用 https 保护用户信息的 Web 应用程序 现在我陷入了登录页面 我不知道通过我的应用程序登录时如何检查用户网站中的真实帐户 即使我输入错误的帐户 我也只收到 200 的回复 这是我
  • NSMutableArray enumerateObjectsUsingBlock 并不像苹果所说的同步

    这是一个错误吗 我有这样的行 myArray enumerateObjectsUsingBlock id obj NSUInteger idx BOOL stop NSLog d idx NSLog end 这应该像这样打印 0 1 2 e
  • 目标 C:检测震动

    我正在使用 shake api 如下所示 void motionEnded UIEventSubtype motion withEvent UIEvent event if event subtype UIEventSubtypeMotio
  • 将 autoResizingMask 与 CGRectZero 结合使用

    我正在为表格视图部分构建页脚 页脚的高度将在中指定heightForFooterInSection so in viewForFooterInSection我只想添加子视图并指定页脚视图应填充指定的任何页脚高度 此页脚大小将是动态的 所以
  • iPhone IOS5 Storyboard,如何使用自定义的 .xib 文件加载 UIViewController?

    我有一些来自旧 iOS4 项目的 UIViewController 它们使用的是在界面生成器中创建的 xib 我的新项目是为 iOS5 构建的 使用故事板 我正在尝试将 UIViewController 添加到故事板 但让它使用我已经拥有的
  • iPhone通讯录:如何获取仅包含电话号码的联系人列表?

    我想获取所有具有电话号码的 ABContacts 的列表 并且仅获取这些联系人 我不想显示任何仅包含电子邮件的联系人 Android 有一个名为 HAS PHNONE NUMBER 的字段 您可以查询该字段 但我没有在 iPhone 上看到
  • UIDatePicker 中的最小和最大日期

    我想从日期选择器中获取最小和最大日期 但最小日期应为当前日期的 18 最大日期应为当前日期的 100 假设当前年份是 2018 年 那么我想要最小日期 2000 年和最大日期 1918 年 到目前为止我所做的是 NSCalendar gre
  • YouTube 嵌入 AirPlay UIWebView

    我正在开发一个视频应用程序 其中包含来自不同来源的大量视频 应用程序中的选项之一必须是通过电视上的 Airplay 播放视频 为了在我的应用程序中显示 YouTube 视频 我使用 YTPlayerView 它是 YouTube API 的
  • 不要自动切换到更高端的独立GPU

    正如本文所写技术问答 http developer apple com library mac qa qa1734 index html 默认情况下 一旦您的应用程序创建了 OpenGL 上下文 通过 直接调用OpenGL或依赖OpenGL
  • 将渐变应用于 UIImage - 如何消除颜色反转?

    我正在应用渐变UIImage 我希望它底部是黑色的 中间慢慢变成透明或浅灰色 基本上没问题 但我有一个问题 在这个渐变下 我的图像颜色在某些地方反转 这看起来很烦人 我该如何解决这个问题 为了您方便 我的方法如下 我尝试过选择不同的混合模式
  • 如何将文本从文本字段发送到另一个视图控制器

    我正在制作一个应用程序 其行为类似于 iPhone 中的默认 Messages app 用户可以在其中编写短信UITextField点击 发送 按钮后 该值UITextField in ComposeViewController将被转移到表
  • 如何获取 NSTextStorage/NSString 中的单词数?

    所以我的问题基本上是如何获取 NSTextStorage NSString 中的单词数 我不需要字符长度 而是单词长度 谢谢 如果您使用的是 10 6 或更高版本 以下可能是最简单的解决方案 NSUInteger numberOfWords

随机推荐

  • Objective-C 中的 super 到底是什么?

    据我所知 它是指向超类的指针 它与超类是硬连线的 并且不是在运行时动态计算出来的 想更详细的了解一下 Anyone super 本质上 它允许您使用当前类的超类的实现 For the gritty detailsObjective C 运行
  • 当我仅使用脚本名称在 Windows 上运行 Python 脚本时无法重定向输出

    它在 Windows 7 64 位 带有 Win32 Python 扩展的 Python 2 6 上运行 我有一个简单的脚本 只打印 hello world 我可以启动它python hello py 在这种情况下 我可以将输出重定向到文件
  • 如何用C语言函数判断一个文件是否是elf文件?

    在我的程序中 我想识别文件是否是ELF 可执行和可链接格式 类型 如何用C语言函数判断一个文件是否是elf文件 If the only你要做的就是测试文件是否是 ELF 然后读取前 16 个字节来检查文件身份 前四个字节等于 0x7f E
  • 为什么我无法使用 LWP::Simple 获取维基百科页面?

    我正在尝试使用获取维基百科页面LWP 简单 但他们不会回来了 这段代码 usr bin perl use strict use LWP Simple print get http en wikipedia org wiki Stack ov
  • Python dict.get() 引发 KeyError

    我在这里迷路了 Python 2 7 我有一本字典mt 我用get 方法 文档中说 get key default 如果 key 位于则返回 key 的值 字典 否则默认 如果没有给出默认值 则默认为 无 因此该方法永远不会引发KeyErr
  • AngularJS:观察高度变化的更好方法

    我遇到了旧的可变高度导航问题 Aposition fixes顶部导航和内容margin top naviHeight以下 当数据异步加载时 导航可以改变高度 因此内容的边距也必须随之改变 我希望这是独立的 因此 没有加载数据的代码 而仅在涉
  • 如果锁定的对象内部发生异常,该对象是否会保持锁定状态?

    在 C 线程应用程序中 如果我要锁定一个对象 比如说队列 如果发生异常 该对象是否会保持锁定状态 这是伪代码 int ii lock MyQueue MyClass LclClass MyClass MyQueue Dequeue try
  • 使用 OpenSSL 读取证书文件时出现 Ruby 错误

    我正在尝试做一个简单的OpenSSL X509 Certificate new File read testuser p12 来自IRB与红宝石 1 8 7 或 1 9 2 两者结果相同 我得到的错误是OpenSSL X509 Certif
  • 使用包含空格的文件名的 GNUMake 最可靠的方法是什么?

    我想使用 GNUMake 运行基于规则的 makefile 该文件在目录结构中 在 Windows 文件系统上 构建一组 C 文件 根目录 部分子目录和部分文件包含空格 示例文件 C Documents and Settings
  • 命名和未命名匿名 Javascript 函数之间的差异

    通常 在 Javascript 中 当我想将匿名 内联函数作为参数传递给另一个函数时 我会执行以下操作之一 someFunctionCall function someFunctionCall gt 然而 我最近继承了一个使用的代码库nam
  • 提示与密码 EditText 右侧对齐

    我正在研究阿拉伯语并开展活动 我希望用户名和密码的提示从右侧开始 并且从左侧开始输入没有问题 但在我的用户界面中 我希望提示位于右侧 但是当我为 EditText 添加 inputType 时 提示会移到左侧 我尝试以编程方式解决它 但它不
  • 从 postgres 中的路径中分离出文件名

    我有一个包含 Windows 文件路径的字段 如下所示 fs1 foo bar snafu txt c this is why i drink snafu txt fs2 bippity baz zip fs3 boppity boo ba
  • Haskell 使用 -O2 进行编译会大大增加内存使用量

    当使用 ghc 不使用任何标志进行编译时 这个简单的程序在恒定内存空间中运行 import Data List f x x x g a foldl f a 1 1073741824 1 main do putStrLn show foldl
  • 在 Android 中使用特定于构建的 aaptOptions(用于排除特定资产文件/文件夹)

    一直在开发 Android Webview 应用程序 我刚刚开始使用其中的 node modules 文件夹 所以很自然地我做了一些关于如何排除它的研究 最终得到了这个问题在这里 尝试了一些答案 最适合我的答案是关于 aaptOptions
  • 推送通知在 iOS 10 上不工作

    安装 iOS 10 的新更新后 推送通知不起作用 而相同的代码实现适用于 iOS 9 iOS 10 的推送通知有什么新功能吗 因为 我无法弄清楚 另外 是否需要在功能下打开推送通知 需要对带有 xCode 8 GM 的 iOS 10 进行一
  • 如何使用 AWS CDK 查找现有 ApiGateway

    我正在使用 AWS CDK 构建我的 lambda 并且我想从 lambda 的 CDK 堆栈注册终端节点 我发现我可以使用 fromRestApiId scope id restApiId 获取现有的 ApiGateway 构造 文档在这
  • 设置自动增量列的起始值

    我有一张桌子Orders包含以下字段 身份证 小计 税务 运输 创建日期 The Id列设置为autoincrement 1 1 这将在电子商务店面中使用 有时 当前的电子商务商店会迁移到我的平台 并且他们已经有订单 这可能意味着他们当前的
  • 清除所有旧的 CMFEditions 版本

    我们有一个巨大的网站 应该为开发副本准备数据库 如何删除所有内容项的所有旧历史版本 通过这种方式 我们可以大大减少传输到开发人员计算机所需的数据大小 克隆人4 0 转到portal purgepolicy 并将数字设置为某个数字 我通常使用
  • 如何将输入的第一个字母大写?

    我目前正在尝试将输入中的第一个字母大写 这是我尝试过的 fieldset input text transform capitalize 但它并没有按照我想要的方式工作 因为每个单词都是大写的 我也尝试过这个 fieldset input
  • 关注 iPhone 上的下一个有效关键视图

    iPhone 是否有同等功能NSResponder方法 selectNextKeyView or nextValidKeyView来自 Mac OS X 我知道关于 becomeFirstResponder方法 但是当视图层次结构变得更加复