快速聚焦文本字段

2024-01-01

我在注册屏幕上有 4 个文本字段,我将其设置为当用户在每个文本字段上按“下一步”时,下一个文本字段将获得焦点。代码如下:

func textFieldShouldReturn(textField: UITextField) -> Bool {
    if (textField == self.fNameField) {
        textField.resignFirstResponder()
        self.sNameField.becomeFirstResponder()
    }
    else if (textField == self.sNameField) {
        self.emailField.becomeFirstResponder()
        
    } else if (textField == self.emailField) {
        self.passwordField.becomeFirstResponder()
    }
    else {
        var thereWereErrors = checkForErrors()
        if !thereWereErrors
        {
            //conditionally segue to next screen
        }
    }
    
    return true
}

在返回最终文本字段时,我调用错误检查函数(如下)。在其中,如果任何字段存在问题,我想集中该文本字段,以便用户可以轻松更正它。发生的情况是,有错误的文本字段聚焦(按照 checkForErrors 函数的指示)一秒钟,但随后焦点切换回密码文本字段。我也尝试添加self.passwordField.resignFirstResponder()进入上述函数的最后一个 else ,这使得密码字段失去焦点,但遇到问题的文本字段根本没有获得焦点(甚至没有像以前那样一秒钟)我该如何解决这个问题?

func checkForErrors() -> Bool
{
    var errors = false
    let title = "Error"
    var message = ""
    if fNameField.text.isEmpty {
        errors = true
        message += "First name empty"
        alertWithTitle(title, message: message, ViewController: self)
        self.fNameField.becomeFirstResponder()
    }
    else if sNameField.text.isEmpty
    {
        errors = true
        message += "Surname empty"
        alertWithTitle(title, message: message, ViewController: self)
        self.sNameField.becomeFirstResponder()
    }
    else if emailField.text.isEmpty
    {
        errors = true
        message += "Email empty"
        alertWithTitle(title, message: message, ViewController: self)
        self.emailField.becomeFirstResponder()
    }
    else if !isValidEmail(emailField.text)
    {
        errors = true
        message += "Invalid Email Address"
        alertWithTitle(title, message: message, ViewController: self)
        self.emailField.becomeFirstResponder()
    }
    else if passwordField.text.isEmpty
    {
        errors = true
        message += "Password empty"
        alertWithTitle(title, message: message, ViewController: self)
        self.passwordField.becomeFirstResponder()
    }
    else if count(passwordField.text.utf16)<8
    {
        errors = true
        message += "Password must be at least 8 characters"
        alertWithTitle(title, message: message, ViewController: self)
        self.passwordField.becomeFirstResponder()
    }
    
    return errors
}

注意我已经包含了 textField 委托。

根据要求带有标题功能的警报:

func alertWithTitle(title: String!, #message: String, #ViewController: UIViewController) {
    let alert = UIAlertController(title: title, message: message, preferredStyle: .Alert)
    let action = UIAlertAction(title: "OK", style: .Cancel, handler: nil)
    alert.addAction(action)
    ViewController.presentViewController(alert, animated: true, completion: nil)
}

theTextFieldYouWant.becomeFirstResponder()

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

快速聚焦文本字段 的相关文章

  • 根据 Swift 中的列表选择在 ViewController 之间传递值

    我试图将 listView 选择的选定索引号从一个 ViewController 传递到另一个 ViewController 但遇到了 tableView didSelectRowAtIndexPath 委托运行时间稍晚于prepareFo
  • iPhone:每日本地通知

    我正在尝试实现本地通知 这就是我所设置的 Current date NSDate date NSDate date Add one minute to the current time NSDate dateToFire date date
  • Swift 语言中的 #ifdef 替换

    在 C C Objective C 中 您可以使用编译器预处理器定义宏 此外 您可以使用编译器预处理器包含 排除代码的某些部分 ifdef DEBUG Debug only code endif Swift 中有类似的解决方案吗 是的 你可
  • 如何使用逗号和行分隔符对字符串进行标记

    我正在 Swift 中制作一个简单的 String Tokenizer 就像在 Java 中一样 但这对我来说确实不起作用 我的数据源中每行的末尾用 分隔 数据用逗号分隔 例如 字符串 1 字符串 2 字符串 3 字符串 1 字符串 2 字
  • 与 parse-server 和 auth0 的自定义身份验证集成

    我想将 auth0 com 与开源解析服务器结合使用 我当前的方法是通过 iOS 的 Lock 库使用标准登录从 auth0 获取令牌 使用该令牌 我想在解析服务器上调用自定义身份验证方法 该方法检查令牌是否有效 如果有效则将登录用户 我的
  • 在 macOS 上使用 Swift 3 从剪贴板读取

    我是 Swift 的初学者 我想弄清楚如何在 macOS Swift 3 上读取已复制到剪贴板的内容 我搜索了很多 但似乎找不到任何有效的东西 我从网上尝试过的一些事情 var pasteboardItems NSPasteboardIte
  • gestureRecognizer shouldReceiveTouch 持续存在于已释放的视图中导致崩溃

    我有一个相当简单的 UITableView 它在堆栈上推送一个新视图 新视图有一个像这样初始化的gestureRecognizer synthesize swipeGestureLeft void viewDidLoad swipeGest
  • 无法在 xcode 8 beta 6 上编译 AWS CustomIdentityProvider

    我在 iOS 应用程序中使用 Amazon Cognito 和 Facebook 登录 直到 beta 5 为止此代码从这个SO线程 https stackoverflow com questions 37597388 aws cognit
  • 从字典创建 Swift 对象

    如何根据 Swift 字典中的查找值动态实例化类型 希望这对其他人有用 我们需要进行一些研究才能弄清楚这一点 目标是避免巨大的 if 或 switch 语句从值创建每个对象类型的反模式 class NamedItem CustomStrin
  • 按升序对 NSDictionary 进行排序

    我正在尝试排序NSDictionary按升序排列 我正在使用这段代码 NSDictionary valDict self mGetDataDict key rowKey for NSString valueKey in valDict al
  • iOS 7 NS 单线程安全合并冲突

    重新排序两行后 在单线程应用程序上保存简单的数据时遇到问题 我已经成功地简化了编码以重现错误 并且希望其他人尝试这一点时得到第二个意见 这是一次健全性检查 因为我怀疑 iOS 7 引入的核心数据问题 而这在 iOS 6 中工作正常 首先 启
  • “无法取消归档名为 UITableViewController 的元素”

    我一直在按照 构建你的第二个 iOS 应用程序 教程一步步进行 在教程承诺所有错误都会消失之后 我遇到了这个错误 但直到其他错误都出现后 该错误才出现 全部更正 我尝试编译它 错误 The document MainStoryboard i
  • iOS绘图3D图形库[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在搜索一个可以帮助我绘制 3D 图表的库 我想要类似的东西这一页 http www math uri edu bkaskosz fla
  • 使用未声明的类型“对象”

    这太奇怪了 通常我可以理解未声明的类 但这是声称 Object 类本身未声明 NSObject 可以工作 但我的项目设置方式我需要它是一个纯 Swift 对象 我的类标题如下所示 import UIKit import Foundation
  • Swift 单元测试 - 如何断言 CGColor 是它应该的样子?

    使用 Xcode V7 2 尝试进行单元测试 需要验证是否已设置正确的颜色 并收到以下消息 Cannot invoke XCTAssertEqual with an argument list of type CGColor CGColor
  • 自动生成的 Swift 桥接标头中“找不到接口声明”

    我当前的项目包含 Swift 和 Objective C 代码 两种类型的源文件都使用另一种语言的代码 当我进行完全清理并重新编译时 几乎每个 Swift 类声明都出现错误Module Swift h 形式为 Cannot find int
  • 将 NSFetchedResultsController 添加到项目后出现问题

    我设置 CoreData 时没有NSFetchedResultsController一切都保存得很好 切换到之后NSFetchedResultsController 我在尝试保存图像时遇到奇怪的错误 这是我用来保存图像的代码 void sa
  • iOS 搜索栏不显示结果

    更新 这实际上有效 我的自定义单元格的样式尚未出现 因此单元格看起来是空白的 那我怎样才能得到searchResultsTableView使用我的自定义单元格 我在表格视图中实现了搜索栏 当我调试时搜索 过滤所有工作 但是当我在搜索栏中输入
  • 如何制作像 Facebook 应用程序一样的登录屏幕?

    如何制作像 Facebook 应用程序一样带有 电子邮件 和 密码 文本字段的登录屏幕 Facebook登入 http extdesenv com wp content uploads 2012 05 facebook login ios
  • 如何安全地重命名 iOS 分发配置文件?

    我几个小时前刚刚提交了我的第一个应用程序 现在处于 等待审核 状态 但我犯了一个错误 我已经命名了我的分配配置文件My Company Distribution Profile 我应该做的事情被命名为我的发行版配置文件My GAME Dis

随机推荐

  • Rails、CoffeeScript 和 ERB

    因此 我正在使用一些 javascript 响应程序来执行一些操作 所以 举例来说 def create code omitted respond to do format if post save format html redirect
  • 为什么在 Android NDK 中将静态库与 CMake 链接时仍然出现未定义的引用错误?

    在构建以下 Android NDK 项目时 我收到了许多有关缺少标准库函数的未定义参考错误 我遵循了一些链接静态库的基本示例 并从头开始重新启动了该项目 3 次 但我仍然找不到问题 我正在尝试使用我编译的 lib seal 库 std c
  • 有效的C++仍然有效吗?

    从我所看到的这个帖子 https stackoverflow com questions 388242 the definitive c book guide and list我决定开始读这本书有效的C https rads stackov
  • 从 AngularJS 调用 Laravel Controller 时无法下载 Excel 文件

    您好 我正在从 angularjs 向 laravel 控制器发送一些数据 根据这些数据 我想从 sql 表获取数据并下载为 excel 文件 但我无法下载该文件 角码 scope sendSetField function selecte
  • xamarin:无法解析程序集:System.Security

    当我尝试部署 iOS 应用程序时 出现以下错误 错误 MT2002 无法解析程序集 System Security Version 2 0 0 0 Culture neutral PublicKeyToken b03f5f7f11d50a3
  • Java:调用目标异常

    我在 Java 中动态创建类并尝试调用其中的方法 但是 有时我会得到一个java lang reflect InvocationTargetException PageGenerator1 java 动态创建 import java io
  • 无法使用 Mono Soft Debugger 远程调试,因为“调试器代理:DWP 握手失败”错误

    我已在我的应用程序中嵌入了单声道 该应用程序是支持插件的控制台应用程序 插件是 NET 程序集 一切都很好 但我想调试它们 为了在我的 C 代码中启用调试 我有 mono set dirs ASSEMBLIES DIR NAME ASSEM
  • 在 UpSetR 中使用矩阵点的调色板

    下面我构建了一个心烦意乱的情节 https www ncbi nlm nih gov pmc articles PMC4720993 我使用调色板来定义条形颜色 有没有办法对连接点的矩阵也做到这一点 library dplyr librar
  • “netcoreapp1.0”是不受支持的框架。 - Asp.Net Core 音乐商店

    我只是第一次尝试 asp net core 打开刚刚更新的音乐商店应用程序 https github com aspnet MusicStore但我无法构建 Nuget 告诉我 Errors in C development MusicSt
  • Spring Boot 基于角色的身份验证

    我有一个关于 Spring Boot 基于角色的身份验证的问题 基本上 我希望拥有用户和管理员 并且我想阻止用户访问管理资源 所以我创建了一个 SecurityConfig 类 package test import org springf
  • Javascript:将字符串拆分为二维数组

    我有一串月份和年份 var months 2010 1 2010 3 2011 4 2011 7 我想将其制作成一个二维数组 其中年份位于每个数组的第一个位置 月份位于第二个位置 换句话说 我想以这样的方式结束 var monthArray
  • IOS 应用程序加载器显示捆绑错误

    我已经浪费了3天的时间 解决 这个问题 实际上我已经尝试了我能想象到的一切 但一无所获 当我的应用程序二进制上传时 我收到以下错误 错误 ITMS 9000 此捆绑包无效 armv7 需要包含 armv7 架构 在软件资产 软件资产 MZI
  • 如何禁用特定 @FeignClient 上的 eureka 查找

    我有一个微服务使用 FeignClient主要是与其他微服务对话 使用 Eureka 服务发现机制可以完美地实现这一点 现在我迫切需要使用 FeignClient连接到外部系统并仍然使用如下所示的配置执行负载平衡 Feign client
  • WPF MEF + Prism 初始区域加载

    我在 WPF 中使用 MEF 和 Prism 编写了一个具有三个不同区域的 MVVM 应用程序 代码跨两个模块 在 App Config 中发现 我的所有导航命令和结构都工作得很好 但我感到困惑的一件事是如何设置在应用程序启动时加载到每个区
  • 如何在不序列化的情况下将对象作为输入传递给 WorkManager?

    我需要将复杂的对象传递给 WorkManager 或者我需要序列化包含 Livedata 和 Date 的对象 它抛出 java lang IllegalArgumentException Key cabId2 has invalid ty
  • R 中嵌套随机效应模型的模型预测?

    我正在尝试拟合具有随机效应的混合模型 lmer基于数据集 df 的模型这个例子在这里 https stackoverflow com a 76510072 7258020 但是 我遇到了一个错误 指出 times 参数无效 有关如何修复它的
  • 强制打开“另存为...”弹出窗口,在文本链接中打开,单击查看 HTML 格式的 PDF

    我的网站上有一些大尺寸的 PDF 目录 我需要将它们链接为下载 当我用谷歌搜索时 我发现了下面提到的这样的事情 它应该打开 另存为 点击链接时弹出 但它不起作用 当我链接到如下文件时 它只是链接到文件并尝试打开该文件 a href file
  • Java中解析固定宽度文本日志的策略

    我试图找出如何最好地解析以下日志文 件 分割由水平线分隔的每个部分并提取各种数据 例如 COMPANY123 BIMMU 日期 2 18 等 然后创建一个字符串 其中包含由水平线分隔的部分中包含的所有其他数据 即 我想创建一个 语句 对象数
  • 如何关闭冻结的 SSH 会话?

    有时 由于互联网连接不良 与远程服务器的 SSH 会话会无限期冻结 是否可以在不关闭终端的情况下关闭会话 按以下三个键 Enter 波形符 时期 这是 断开连接 功能 如ESCAPE CHARACTERS的部分ssh man page
  • 快速聚焦文本字段

    我在注册屏幕上有 4 个文本字段 我将其设置为当用户在每个文本字段上按 下一步 时 下一个文本字段将获得焦点 代码如下 func textFieldShouldReturn textField UITextField gt Bool if