如何知道 SwiftUI 中的安全文本字段何时获得焦点或失去焦点?

2023-12-19

我想知道,我们如何检测 SecureTextField 是否失去焦点或获得焦点。

目前我正在使用点击手势来检查是否获得焦点并相应地更改边框颜色,但有时颜色会发生变化但编辑不会开始。

SecureField("Password", text: $viewModel.password) {
                        passwordEditingState = .ended
                        focusedTextField = nil
                    }
                    .onTapGesture {
                        focusedTextField = TextFields.password.rawValue
                    }
                    .padding(20)
                    .background(Color.systemDefaultSecondary)
                    .cornerRadius(16.0)
                    .disableAutocorrection(true)
                    .autocapitalization(.none)
                    .overlay(RoundedRectangle(cornerRadius: 16).stroke(isSelected ? Color.green : Color.gray, lineWidth: 1))

需要考虑的一件事是,我的应用程序的最低目标为 14.1,因此我需要一个基于此的解决方案。


您可以使用focused修饰符与FocusState,如下所示。

使用 Xcode 13 / iOS 15 准备和测试演示。

注意:您需要模拟器或真实设备 - 它在预览中不起作用

struct ContentView: View {
    @FocusState var isInFocus: Bool
    @State private var text: String = "password"

    var body: some View {
        VStack {
            if isInFocus {
                Text("Field is in focus!")
            }
            SecureField("Password", text: $text)
                .focused($isInFocus)
        }
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何知道 SwiftUI 中的安全文本字段何时获得焦点或失去焦点? 的相关文章

随机推荐

  • 读取 PIC18 上输入引脚的状态

    我已经能够在我的 PIC 上获得输出 并且当我将各种输出锁存器设置为高 低时 可以使一堆 LED 亮起和熄灭 然而 我在大头针状态下阅读有很多困难 请参阅下面的代码 我设置了配置 并将 TRISC 定义为输入 将 TRISB 定义为输出 在
  • 检查输入是否为浮点数并且小数点后恰好有 2 个数字[重复]

    这个问题在这里已经有答案了 我正在开发一个类项目 需要我从用户那里获取浮点值 该浮点值必须在小数点后恰好有两个数字才能成为有效输入 这是我到目前为止所拥有的 while True try cost float input Enter the
  • 通过蓝牙发送多个文件

    我看到你关于通过蓝牙发送文件的答案 于 2011 年 6 月 13 日 5 01 回复 Intent i new Intent Intent ACTION SEND i setType image jpeg i putExtra Inten
  • WordPress可视化编辑器tinymce如何保留自定义属性

    我正在编写一个 WordPress 插件 向 WP 中的tinymce 编辑器添加按钮 我正在向 DOM 元素添加自定义属性 例如 data initial 3 但 WordPress 不会保存它们 即使我尝试在 html 编辑器中编写自定
  • 如何通过命令行应用程序获取 Firefox 中打开的选项卡列表?

    我在 Firefox 中打开了很多选项卡 当我关闭 Firefox 然后再次运行它时 选项卡就在那里 没关系 然而 Firefox 有时会崩溃 我的选项卡也会丢失 如何获取打开的选项卡并将列表备份到某个文件 对于文件中的选项卡 我还可以使用
  • 如何使用 OrmLite 将非可选 NULL 参数传递给存储过程

    我正在针对已发布存储过程进行访问的现有 SQL Server 数据库使用 OrmLite 这些 SP 之一采用 3 个 int 参数 但预计其中一个或另一个将为 null 但是 没有任何参数被声明为可选 这是我尝试过的代码 using ID
  • Shopify API:如何向客户发送有关正在发货的产品的电子邮件?

    我正在尝试通过更新订单履行情况向客户发送一封包含订单跟踪信息的电子邮件 但该电子邮件未发送出去 我可以检索履行情况并添加跟踪代码 它可以正确保存 但状态不会更新 fulfillment id 3252574519475 shopify or
  • 如何使用 Django 重命名模型?

    假设我有这个模型 class Foo models Model name models CharField max length 255 我想将其重命名为Bar 我应该采取什么步骤 我该如何处理The following content t
  • Rails 开发服务器速度慢,加载简单页面需要很长时间

    有类似的线程关于 Rails 在开发模式下速度缓慢 但这些线程中的解决方案对我来说没有任何区别 我尝试安装可以提高性能的 gem 并修改配置文件 但没有成功 我刚刚开始使用 Rails 因此我正在运行 Rails 入门 指南 这是一个小博客
  • 自定义分区问题

    有人可以指导我如何解决这个问题吗 给定一个集合 S 其中有 k 个元素 现在我们必须将集合S分为x个子集 使得每个子集中的元素数量差不大于1 并且每个子集的总和应尽可能接近 示例1 10 20 90 200 100 必须分为 2 个子集 解
  • 从 byte[] 创建一个临时 java.io.File

    我必须使用现有的方法 例如saveAttachment Attachment attachment where Attachment has a File attribute 我的问题是我正在检索byte 我想用这种方法保存它 怎样才能拥有
  • RedirectMatch 在 htaccess 中不起作用

    我正在尝试从以下位置重定向我的页面 from http domain com article php id 23232 http domain com article php id 23232 to http domain com arti
  • 使用 beautifulsoup 从页面中抓取表格,找不到表格

    我一直在尝试从桌子上刮下来here http www payscale com college salary report bachelors page 65但在我看来 BeautifulSoup 找不到任何桌子 I wrote impor
  • 在嵌套字典中获取特定键的值的优雅方法?

    我有一个Python 嵌套字典 我可以访问A像这样的元素 D 0 detLog n A 其中 n 是从 0 到的长度detLog 在 Matlab 中我可以使用这样的东西 D 0 detLog A 意思是 对于所有元素 Python中有类似
  • Maven scm 连接器 subclipse 的替代品(不适用于 subclipse1.8)?

    因此 对于我的项目 我需要 Subclipse 1 8 x 这很好 但 subclipse 的 Maven SCM 处理程序仅与 Subclipse 1 6 x 兼容 我喜欢这个插件 因为它会自动加载模块 并检测它们 所以你可以在 svn
  • 如何在输出缓冲区时查看包含文件中的 php 错误?

    使用输出缓冲区时出现空白屏幕 并且包含的 文件中存在语法错误 PHP 不显示输出缓冲区中的错误 如何查看php输出缓冲区语法错误 在我的项目中我使用了 如果文件不存在则隐藏错误 但如果文件确实存在并且有致命错误 它们也不会显示 这是代码示例
  • 在 Git 中回滚

    我已经提交并推送了几个补丁 A1 gt A2 gt A3 gt A4 头部 每个人都将这些变更集拉到他们的本地副本中 现在我们想要 回滚 到 A2 并从那里继续开发 基本上抛弃 A3 和 A4 最好的方法是什么 从工作副本的根目录只需执行以
  • 模板化组合框的“默认”文本

    我有一个基于数据模板的组合框 其中包含如下复选框
  • 使用 JavaScript 读取 KMZ

    如何使用 JavaScript 读取 KMZ 而非 KML 中的内容 那么您需要看看是否可以解压缩文件 我会看看这个堆栈溢出帖子 https stackoverflow com questions 2095697 unzip files u
  • 如何知道 SwiftUI 中的安全文本字段何时获得焦点或失去焦点?

    我想知道 我们如何检测 SecureTextField 是否失去焦点或获得焦点 目前我正在使用点击手势来检查是否获得焦点并相应地更改边框颜色 但有时颜色会发生变化但编辑不会开始 SecureField Password text viewM