如何浏览文本字段(下一步/完成按钮)

2023-12-22

如何使用 iPhone 键盘上的“下一步”按钮浏览所有文本字段?

最后一个文本字段应关闭键盘。

我已经设置了 IB 按钮(下一步/完成),但现在我陷入困境。

我实现了 textFieldShouldReturn 操作,但现在“下一步”和“完成”按钮关闭了键盘。


在 Mac OS X 的 Cocoa 中,您有下一个响应者链,您可以在其中询问文本字段接下来应该获得哪个控件的焦点。这就是文本字段之间的制表符起作用的原因。但由于 iOS 设备没有键盘,只有触摸,所以这个概念在向 Cocoa Touch 的过渡中并没有延续下来。

无论如何,这可以很容易地完成,有两个假设:

  1. 所有“可选项”UITextFields 位于同一父视图上。
  2. 它们的“制表符顺序”由标签属性定义。

假设你可以重写 textFieldShouldReturn: 如下:

-(BOOL)textFieldShouldReturn:(UITextField*)textField
{
  NSInteger nextTag = textField.tag + 1;
  // Try to find next responder
  UIResponder* nextResponder = [textField.superview viewWithTag:nextTag];
  if (nextResponder) {
    // Found next responder, so set it.
    [nextResponder becomeFirstResponder];
  } else {
    // Not found, so remove keyboard.
    [textField resignFirstResponder];
  }
  return NO; // We do not want UITextField to insert line-breaks.
}

添加更多代码,假设也可以忽略。

斯威夫特4.0

 func textFieldShouldReturn(_ textField: UITextField) -> Bool {
    let nextTag = textField.tag + 1
    // Try to find next responder
    let nextResponder = textField.superview?.viewWithTag(nextTag) as UIResponder!

    if nextResponder != nil {
        // Found next responder, so set it
        nextResponder?.becomeFirstResponder()
    } else {
        // Not found, so remove keyboard
        textField.resignFirstResponder()
    }

    return false
}

如果文本字段的超级视图是 UITableViewCell 那么下一个响应者将是

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

如何浏览文本字段(下一步/完成按钮) 的相关文章

  • 访问iOS 7隐藏的UITableViewCellScrollView?

    苹果改变了UITableViewCelliOS 7 中的层次结构 使用iOS 6 1 SDK
  • 以编程方式更改 UISlider 的范围

    如何以编程方式设置 UISlider 的最小最大范围 例如 虚拟代码 UISlider slider UISlider alloc init slider min 3 slider max 3 EDIT 所以我有以下内容 sl minimu
  • CocoaPods 生成无效的项目文件(未找到标头)

    我有一个带有 Podfile 的项目文件 如下所示 platform ios 7 0 def import pods pod Specta 0 1 8 pod Expecta 0 2 1 pod RestKit 0 20 3 pod Mag
  • Expo 应用程序“您的应用程序正在使用广告标识符 (IDFA)”

    我正在尝试将应用程序上传到应用程序商店 每次我上传二进制文件时 苹果都会坚持认为我的应用程序正在使用广告 而我从未实现过这样的事情 我查看了文档并删除了涉及的所有代码ASIdentifier and adIdentifier我不太确定我错过
  • ObjC <-> Swift 桥接和工厂方法

    我想从 Swift 使用一些 Objective C 类 由于超出了这个问题范围的原因 我的班级init方法被标记为不可用 相反 有一个工厂方法 这是我的班级的简化形式 interface MyClass NSObject instance
  • 是否可以使用 iOS SDK 更改 Amazon Cognito 中的用户名?

    正如标题中所写 是否可以更改 Amazon Cognito 用户的用户名 我在文档中找不到任何内容 可以更新preferred username使用 iOS SDK 的 Cognito 用户 使用updateAttributesAPI 调用
  • UIWebView 未正确加载 JavaScript - 嵌入式 Facebook 帖子

    Facebook 有一项新功能 允许用户将公共帖子嵌入网页中 我想尝试在 UIWebView 内的 iPhone 应用程序中使用它 转义必要的代码非常简单 但即使我手动转义代码 Web 视图也不会正确加载帖子 JavaScript 根本不起
  • 删除部分(红色删除按钮),UITableViewController - iOS

    我正在尝试做一个分组的 uitableview 并且我已经激活了编辑选项 我希望用户也能够删除整个部分 而不仅仅是特定行 因此 当您单击 编辑 时 每个表格单元格左侧显示的红色减号按钮也应该显示在各个部分 部分标题左侧 有人知道如何做到这一
  • 监控剪贴板活动可可?

    是否可以在可可中 观看 用户剪贴板 例如 如果我的应用程序是系统托盘样式应用程序 例如 dropbox 客户端 我可以订阅用户在另一个应用程序中点击复制 粘贴时引发的事件吗 你可以随时查看Apple的示例代码 剪贴板查看器 http dev
  • 是否有一个类可以获取应用程序中的默认图片查看器?

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

    我试图通过使用 NSPredicate 进行过滤来获取两组 Realm 数据 并且是不同的对象 之间的差异 但存在一个我无法理解的错误 我的代码 RLMResults topStories KFXTopStory allObjects NS
  • 以编程方式添加带有自动布局的 UISLider

    我正在尝试以编程方式将 UISlider 添加到我的视图中 包括约束 以便其宽度适应整个屏幕宽度 这是我到目前为止得到的 2 Add UISlider self slider UISlider alloc init self view ad
  • 有没有办法在 xcode 上使用 c++0x ?我想使用 gcc 4.4 或更高版本

    我想使用 gcc 4 4 或更高版本进行 iphone 开发 有人知道怎么做吗 不 你不知道 相信我 你不会 Apple 仍保留 gcc 4 2 1 因为 4 2 2 及更高版本使用 GPLv3 这意味着他们必须放弃对其平台的控制 对于 i
  • Flutter - 删除 ListView 中项目之间的空间

    我正在使用 ListView builder 函数来创建项目列表 然而 iOS 中每个项目之间的空间很大 截图 你知道如何删除项目吗 看来是默认的 因为我没有添加它 code 列表显示 return Scaffold body ListVi
  • swift 3.0 中的 Sha 256 加密语法错误

    func SHA256 gt String let data self data using String Encoding utf8 let res NSMutableData length Int CC SHA256 DIGEST LE
  • iPhone 上的锁定方向 UIWebView

    有没有办法锁定 UIWebView 的方向 使用 Obj C JS 还是 Html 我不想有按钮或任何东西 我只想在应用程序打开时将其锁定为纵向 好像这个堆栈溢出帖子 https stackoverflow com questions 43
  • 使用排序函数按 NSDates 对数组进行排序[重复]

    这个问题在这里已经有答案了 我有一个名为的模型类Event import Foundation import MapKit public class Event let id Int var title String let status
  • iOS SDK:MapKit MKPolyLine 未显示

    我试图在地图上显示多段线 但该线没有显示 我尝试了很多事情 但注意到似乎有用 我检查了核心数据函数 它正在返回数据 所以这不是问题 它必须是我在地图点创建或地图上绘制的某个地方 我猜 我确信一定是某个地方出了点小错误 但我找不到它 My c
  • UIWebView 内的滑动手势识别

    我已经阅读了很多关于此的问题 但似乎没有一个能够实现我想要的 所以可以说我有一个任意的UIWebView里面的一个UIViewController The UIViewController has a SwipeGestureRecogni
  • iPhone UIViewController 中的 UIPickerView

    我有一个 xib 其中添加了一个UIViewController名为德尔塔 delta 下的视图由 delta viewcontroller 控制 而不是由文件所有者控制 在三角洲视图中 我有一个UIViewPicker 我的问题是我正在编

随机推荐

  • 如何更改 html5 canvas 的尺寸而不缩放内容

    我像这样初始化画布
  • CXF - Wsdl2java - XX 属性已定义

    我使用 CXF 生成客户端类来访问 Web 服务服务器 Web 服务基于 WCF NET 当我调用 wsdl2java 时 出现以下错误 The id property is already defined use
  • 单元测试中未定义注入的依赖关系

    我是 Angular 的新手 不太清楚依赖注入到底是如何工作的 我的问题是我的服务 A 依赖于服务 B 但是当我将服务 A 注入到我的测试中时 服务 B 变得未定义 我见过在对 AngularJS 服务进行单元测试时注入依赖服务 https
  • 了解模数运算符 %

    我根据以下表达式理解模运算符 7 5 这将返回 2 因为 5 会变成 7 一次 然后给出剩下的 2 但是当您反转此语句以阅读时 我会感到困惑 5 7 这给了我 5 的值 这让我有点困惑 7虽然不能整成5 但有一部分能整成5 为什么不是没有余
  • 如何在 OSX 上自动加载 R 中的设置?如何找到R_HOME、配置Rprofile.site等?

    我有一台 Macintosh 我试图自动加载包 自制函数 并在每次启动 R 时使用修改后的设置 我相信这可以通过名为 Rprofile site 的文件并创建函数 First 和 Last 来完成在该文件中 一个问题是 我不知道我的 R H
  • 为什么商店负载屏障被认为是昂贵的?

    大多数 CPU 架构都会重新排序存储加载操作 但我的问题是为什么 我对商店负载屏障的解释如下 x 50 store load barrier y z 此外 与释放和获取语义相比 我不明白这个屏障在无锁编程中有何用处 简答 存储加载屏障可防止
  • 正则表达式:修剪字符串的一部分并返回剩下的内容

    我尝试使用正则表达式来获取字符串 12344dfdfsss isa 中 后面的内容 在本例中我想从字符串中获取 isa 我找到了这些答案 如何使用 RegExp 删除大字符串中的一小部分字符串 https stackoverflow com
  • 离线时如何安装conda环境?

    我想在没有网络连接的机器上创建 conda 环境 到目前为止我所做的是 在连接到互联网的机器上 conda create n python3 python 3 4 anaconda Conda 将所有相关包存档到 Anaconda pkgs
  • ASP.NET 依赖注入 HTTP 模块(MS 企业库)

    我一直按照 Microsoft Enterprise Library 5 0 文档中的步骤创建一个 HTTP 模块 将对 Enterprise Library 容器的引用注入到 ASP NET Web 应用程序的页面中 它包含以下代码 也出
  • .Net 中(对称)加密的最佳实践?

    什么是加密 SQL 数据库中某些敏感或个人身份数据的 最佳实践 根据 PCI HIPAA 或其他适用的合规标准 这里有很多关于解决方案各个方面的问题 但我还没有看到任何在高层讨论该方法的问题 经过一段时间的观察 我得出以下结论 使用 Cry
  • SwiftUI 添加反转蒙版

    我正在尝试向两个形状添加蒙版 以便第二个形状遮盖第一个形状 如果我做类似的事情Circle mask Circle offset 这会产生相反的效果 防止第一个圆之外的任何内容可见 For UIView答案在这里 iOS 在drawRect
  • 应该使用 NIB 或 iPhone 中的代码创建视图吗?

    使用 Interface Builder 设计视图时有性能 开发缺点或优点吗 通常您想使用 Interface Builder 您希望通过编程接口执行此操作有几个原因 它是更被接受的创建用户界面的方式 因为它的简单性和视觉优势是您无法通过简
  • 逗号分隔文本的正则表达式

    我创建一个文本字段来添加用逗号分隔的标签 例如 php jquery js ruby on Rails 该字段类似于 stakoverflow 上的字段 您可以在其中为帖子添加标签 我想验证输入以确保标签输入正确 这意味着用户只能输入字母
  • 如何以编程方式确定 C++ 中的表达式是右值还是左值?

    在 C 中确定表达式是右值还是左值的最佳方法是什么 也许 这在实践中没有用 但由于我正在学习右值和左值 我认为有一个函数会很好is lvalue如果传入输入的表达式是左值 则返回 true 否则返回 false Example std st
  • 在 ASP.NET MVC3 中使用 Razor 进行文件上传控件

    有没有办法在 ASP NET MVC3 中使用 Razor 帮助器定义文件上传控件 没有用于文件输入的 html 帮助器 但是这样做有什么问题 using Html BeginForm Action Controller FormMetho
  • 如何 close() 和 quit() Selenium 驱动程序而不影响 Cucumber 和 Selenium 中的其他步骤?

    我有两个功能文件Cucumber链接到相应的步骤文件 问题是 当其中一个步骤文件完成执行时 它会关闭所有浏览器窗口 因为driver quit 从而终止尚未完成处理的其他步骤文件的执行 这里每个步骤文件都会打开一个新的浏览器窗口 在其中执行
  • PDO 准备好的语句足以防止 SQL 注入吗?

    假设我有这样的代码 dbh new PDO blahblah stmt dbh gt prepare SELECT FROM users where username username stmt gt execute array usern
  • Spring bean 作用域:session 和 globalSession

    Spring框架中session和globalSession有什么区别
  • 如何查找 Mathematica 笔记本中发生错误的行?

    我有一个名为 myUsefulFunctions m 的 Mathematica 文件 其中包含一个名为 mySuperUsefulFunction 的函数 假设我在笔记本中调用 mySuperUsefulFunction 并收到以下错误
  • 如何浏览文本字段(下一步/完成按钮)

    如何使用 iPhone 键盘上的 下一步 按钮浏览所有文本字段 最后一个文本字段应关闭键盘 我已经设置了 IB 按钮 下一步 完成 但现在我陷入困境 我实现了 textFieldShouldReturn 操作 但现在 下一步 和 完成 按钮