当我按回车键或在文本字段外部单击时,如何删除文本字段焦点? (SwiftUI、MacOS)

2024-02-01

当我按回车键或在文本字段外部单击时,如何删除文本字段焦点? 请注意,这是 SwiftUIMacOS.

如果我这样做:

import SwiftUI

struct ContentView: View {
  @State var field1: String = "This is the Text Field View"

  var body: some View {
    VStack{
      Button("Press") {
        print("Button Pressed")
      }

      TextField("Fill in Text", text: Binding(
        get: { print("get") ; return self.field1 },
        set: { print("set") ; self.field1 = $0 }
        )
      )
    }
  }
}

然后单击文本字段并对其进行编辑,然后单击按钮,文本字段不会失去焦点。如何让它退出编辑模式并失去焦点。

如果我按 Return 键,我还希望失去 TextField 的焦点。 我将绑定初始化程序与 get 和 set 一起使用,因为我认为我可以以某种方式拦截按键并检测“返回”字符,但这不起作用。

任何帮助表示赞赏:-)


以下是可能的变体

import SwiftUI
import AppKit

struct ContentView: View {
  @State var field1: String = "This is the Text Field View"

  var body: some View {
    VStack{
      Button("Press") {
        print("Button Pressed")
          NSApp.keyWindow?.makeFirstResponder(nil)
      }

      TextField("Fill in Text", text: Binding(
        get: { print("get") ; return self.field1 },
        set: { print("set") ; self.field1 = $0 }
        ), onCommit: {
            DispatchQueue.main.async {
                NSApp.keyWindow?.makeFirstResponder(nil)
            }
      }
      )
    }
  }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当我按回车键或在文本字段外部单击时,如何删除文本字段焦点? (SwiftUI、MacOS) 的相关文章

  • Android EditText 验证后更改焦点并在对话框中显示错误

    我有一个带有 3 个 EditText 字段的简单活动 用户 通行证 确认 在 用户 字段中输入内容并且该人在键盘上单击 下一步 后 我在那里有一个 setOnFocusChangeListener 来验证输入 如果验证失败 将打开一个对话
  • 返回列表 (SwiftUI) 后,选定的列表行背景保持灰色(选定)。 iOS 14 + Xcode 12

    从详细信息视图返回后 所选行保持灰色 在模拟器和真实设备上都会发生 仅在 iOS 14 上 有谁知道如何删除它 使其行为与 iOS 13 上相同 不保持选中状态 这是项目中唯一的代码 没有其他导航或任何东西 let items item1
  • 前置条件失败:从 iOS 13.4 开始,在 SwiftUI 中使用 GeometryReader 时输入索引无效

    昨天 我将 XCode 和我的项目升级到 iOS 13 4 我开始在使用 GeometryReaders 的视图周围看到很多失败 除了 前提条件失败 输入索引无效 之外 该错误没有显示任何内容 升级到 13 4 1 后我遇到了完全相同的问题
  • Swiftui,按钮网格视图

    我在这里检查了有关网格视图的几个问题 但我的问题有点不同 我想为按钮创建一个网格视图 以便每个按钮按下时导航到不同的视图 所以它看起来像这样 这是网格按钮视图 https i stack imgur com Q6WWB jpg 所以我在这里
  • 如何在 Swiftui 中使列表项行内的按钮不可点击?

    有没有办法让列表的整行都不可点击 我正在尝试使按钮行上只有按钮可单击 正如您所看到的 如果我尝试单击按钮行中的任何位置 无论是按钮本身 还是按钮周围的空白区域 它都会将其视为点击 有没有办法让您只能单击按钮本身 而不能单击按钮周围的白色间距
  • 在一个 SwiftUI 视图中相同的 ForEach 循环两次

    当我在视图中对数组使用 ForEach 循环两次时 我在运行时收到以下警告 LazyVGridLayout the ID 84308994 9D16 48D2 975E DC40C5F9EFFF is used by multiple ch
  • 理解 UIViewRepresentable

    斯威夫特 5 0 iOS 13 尝试了解 UIViewRepresentable 的工作原理 并将这个简单的示例放在一起 几乎就这样了 但也许完全是无稽之谈 是的 我知道 SwiftUI 中已经有一个 tapGesture 这只是一个测试
  • 工作表关闭后 SwiftUI 导航栏项目框架未对齐

    在 SwiftUI 中关闭工作表后 导航栏按钮不可点击 以下是重现该问题的步骤 出示一张单子 将应用程序移至后台一小段时间 2 秒 恢复应用程序并向下滑动关闭工作表 现在导航栏按钮框架未对齐 点击的工作框架与按钮的可见框架不同 这在 iOS
  • 如何将图像转换为 UIImage?

    如何转换 SwiftUIImage to a UIImage let image Image systemName circle fill let UIImage image as UIImage 没有直接的方法将 Image 转换为 UI
  • 在 SwiftUI 中,如何执行手势但将手势转发到其后面的视图?

    我正在创建一个工具提示系统 如果用户触摸工具提示之外的任何地方 我想关闭工具提示 我希望这样在工具提示之外的触摸既可以消除工具提示 又可以激活用户点击的任何控件 因此 您可以打开一个工具提示 然后仍然单击工具提示外部的按钮 并在第一次点击时
  • 使用 javascript 获取焦点元素的 id

    我有一个包含许多锚元素的 Html 页面 这个单个 Html 页面包含许多 div 部分 一次仅显示一个部分 并且特定于该部分的锚点将聚焦 该 html 还包含一个用于打开弹出窗口的 div 当此弹出窗口打开特定于此的锚点时 将聚焦 现在我
  • SwiftUI 更新主菜单 [已解决] kludgey

    真正的问题 你如何更新mainMenu在 SwiftUI 中 它真的可以工作吗 我在 SwiftUI 中构建了一个基于 MacOS 文档的应用程序 其中包括所有内置的文件菜单命令 即关闭 保存 复制 重命名 等 在保存文档之前 我会验证结构
  • 在SwiftUI中,如何高性能地绘制阴影?

    我用 shadow color radius x y 在我的应用程序中绘制阴影 这是我所知道的在 SwiftUI 中绘制应用程序的唯一方法 我用 sheet isPresented content 方法弹出一个视图 其中包含很多阴影 当我调
  • 针对 iOS 10.3 进行编译,但模块“SwiftUICharts”的最低部署目标为 iOS 13.0

    知道如何仅在 iOS 版本超过 iOS 13 时导入 SwiftUICharts 框架吗 我通过 文件 gt Swift 包 gt 添加包依赖项 添加了此框架 我的应用程序目标必须是 iOS 10 我将此框架导入到 swiftui 控制器中
  • 如何观察UserDefaults的变化?

    我有一个 ObservedObject在我看来 struct HomeView View ObservedObject var station Station var body some View Text self station sta
  • 对成员“buildBlock()”的引用不明确

    我一直在尝试使用 Swift UI 为 iOS 13 制作一个应用程序 但我不断收到这个奇怪的错误 对成员 buildBlock 的引用不明确 无论我做什么 错误都不会消失 我尝试一次对代码段进行注释 以查看哪一部分可能导致了问题 但唯一有
  • SwiftUI:状态栏颜色

    有没有办法将 SwiftUI 视图的状态栏更改为白色 我可能错过了一些简单的东西 但我似乎找不到在 SwiftUI 中将状态栏更改为白色的方法 到目前为止我只看到 statusBar hidden Bool 状态栏文本 色调 前景色可以通过
  • 在 SwiftUI 中使用分段式选取器在两个页面之间滑动

    我有一个Picker with pickerStyle SegmentedPickerStyle 使其成为分段控件 我想让页面在之间平滑滑动 而不是使用条件语句替换视图 这是我迄今为止所做的 gif 这是到目前为止的代码 由if 而不是在不
  • KeyPressed 和 KeyTyped 混淆[重复]

    这个问题在这里已经有答案了 我搜索过之间的区别KeyPressedand KeyTyped事件 但我仍然不清楚 我发现的一件事是 Keypressed 比 KeyTyped 首先被触发 请澄清一下这些事件何时被准确触发 哪个适合用于哪个目的
  • 使用 Swift(使用 SwiftJWT)和 REST API 连接到 Apple Store Connect - 失败并出现 401

    我正在尝试通过他们的 REST API 连接到 Apple Store Connect 虽然这在几天前有效 但我无法弄清楚为什么它停止工作 现在我无法通过身份验证 即我发出的服务器响应的每个请求都是 401 我是否遗漏了什么 我做什么 生成

随机推荐

  • Spyder互动剧情:等待剧情关闭继续

    我使用 Spyder 在 Windows 上工作 使用 matplotlib 进行绘图 我的问题是我想要进行交互式绘图 或者有时绘制很多东西 并且我希望spyder等待我关闭图形以继续代码 与传统终端相同的方式 我试过 plt ion mp
  • Linux 中的堆栈内存管理

    我有几个与 Linux 堆栈大小限制相关的问题 我对 x86 64 系统最感兴趣 但如果存在平台差异 我也想了解它们 我的问题是 1 Linux如何动态增加堆栈的大小 我编写了一个带有递归函数 以使用堆栈空间 的测试程序 我可以在其中指定迭
  • 在 Django 中,如何覆盖“保存并继续”功能?

    我需要向 ModelAdmin 添加一些保存前和保存后逻辑 但仅当用户通过 保存并继续编辑 按钮而不是 保存 按钮提交表单时 我怎样才能做到这一点 就像重写普通的保存方法一样 您需要重写save model ModelAdmin 中的函数
  • 将所有相对 URL 替换为绝对 URL

    我看过一些答案 比如this one https stackoverflow com questions 31347340 convert all relative urls to absolute urls while maintaini
  • 将 textGrob 转换为 imageGrob/rasterGrob?

    如果这非常简单 我深表歉意 其实我希望会是这样 我正在尝试从文本动态创建图像 然后可以调整图像的大小并绘制 拉伸或挤压 以生成主题类型的图表 我开始使用图像 我使用生成的png and ggplot 并将它们绘制为annotation cu
  • 追加内的 for 循环不起作用

    下面是我的代码 table table cellspacing 0 cellpadding 0 border 0 width 100 append append function options ONE TWO THREE FOUR eac
  • SSIS:如何在数据流任务中运行存储过程

    我有一个执行此操作的数据流任务 从 OLE DB 源中 运行 SQL 命令来选择一些数据 查找不同的 SQL DB 源 检查数据是否已存在 根据查找匹配输出与查找不匹配输出 使用不同的输入参数运行存储过程 输入参数将基于 2 中的 可用查找
  • 在Mac OS X系统上快速创建大文件?

    为了创建 10 GB 临时文件 在 Linux 中你可以这样做 fallocate l 10G temp 10GB file 在 Windows 中 您可以执行以下操作 fsutil file createnew temp 10GB fil
  • Prolog 检查列表中的第一个元素是否不相等且列表中的第二个元素是否相等

    我想比较两个列表 第一个元素不应该相等 第二个元素应该相等 示例数据库 likes josh muse likes sam muse likes josh gnr likes sam radiohead 所以它应该为 same josh m
  • 当应用程序在后台时广播接收器

    我正在尝试编写一个应用程序 其中我根据使用 gcm 推送通知发送的消息对 UI 进行更改 并且我设法通过使用 BroadcastReceiver onReceive 函数来实现它 但它仅在应用程序位于前台时才有效 但如果它在后台或关闭 没有
  • decltype(void()) 中的 void() 是表达式还是函数类型?

    这是后续的this https stackoverflow com questions 39278200 is sizeofvoid a legal expression问题 更准确地说是评论this https stackoverflow
  • Spring Boot 2.0.0 + OAuth2

    Spring Boot 2 Spring Security OAuth2 是否仍然支持 AuthorizationServer注解 通过阅读发行说明 有些内容尚未移植 Oauth2 支持 https github com spring pr
  • 是否可以使用可靠的仅 javascript 上传文件

    我想要一种可靠的方式来上传文件 这意味着我希望能够处理中断 错误和暂停 所以我的问题是 是否可以仅在客户端上使用 javascript 进行类似以下操作 如果是这样 我想要指向库 教程 书籍或实现的指针 如果不是 我想解释为什么这是不可能的
  • 这段代码是线程安全的吗?

    我想处理客户请求流 每个请求都有其特殊类型 首先 我需要初始化该类型的一些数据 然后我可以开始处理请求 当客户端类型第一次来的时候 我只是初始化相应的数据 此后 将使用该数据处理该类型的所有后续请求 我需要以线程安全的方式执行此操作 这是我
  • 使用 AsyncController 处理超时的最佳方法

    我的 MVC3 项目中有一个很长时间的轮询控制器 它的超时设置为 30 秒 我有一个 HandleErrorAttribute 实现来处理所有错误的日志记录 由于超时会抛出 TimeoutException 这意味着日志中将会出现该异常 我
  • React-Native 应用程序特定于平台的 ios/android 打字稿文件的相对导入

    我有一个基于 React Native 平台有 2 种不同设计的组件 MyComponent ios tsx and MyComponent android tsx 虽然当我将组件导入MyView tsx 它抱怨 MyView tsx 5
  • 如何在 Eclipse 中调试来自 Maven 构建的测试?

    如何启动 Maven 构建并让测试出现在 Eclipse 的调试透视图中 包或安装是一个原子操作 实际上不应该停止调试 除非您正在调试 Maven 插件 不过 您应该能够通过选择 Eclipse 项目并执行 调试为 gt JUnit 测试
  • 如何单击 python-capmonster 中的确认按钮

    每个人 你好吗 现在我正在制作脚本来解决验证码问题 使用 python capmonster 模块 我可以获得响应 所以我输入了响应
  • 如何消除条形图中条形之间的间隙

    我正在 Matplotlib 中通过如下调用制作条形图 xs bar bar lefts bar heights facecolor black edgecolor black 我得到一个如下所示的条形图 我想要的是连续条之间没有白色间隙的
  • 当我按回车键或在文本字段外部单击时,如何删除文本字段焦点? (SwiftUI、MacOS)

    当我按回车键或在文本字段外部单击时 如何删除文本字段焦点 请注意 这是 SwiftUIMacOS 如果我这样做 import SwiftUI struct ContentView View State var field1 String T