Swift 5 与 SwiftUI:如何动态更改环境区域设置

2023-12-05

我必须让用户从列表中选择应用程序的语言。

将下一行放入 SceneDelegate 中效果很好,因为它在开头加载指定的语言:

window.rootViewController = UIHostingController(rootView: ContentView().environment(\.locale, .init(identifier: "de")))

但我不知道如何从包含列表的视图中设置区域设置以在整个应用程序中切换语言。

谢谢你的帮助


您可以使用@State var作为区域设置标识符。在此示例中,我使用按钮来更改状态,并且文本会立即更改。

struct LanguageView: View {
    @State var identifier = "en"

    var body: some View {
        VStack {
            Button("French", action: {
                self.identifier = "fr"
            })
            Button("English", action: {
                self.identifier = "en"
            })
            Text("Test")
        }
        .environment(\.locale, .init(identifier: identifier))
    }
}

在我的 Localized.strings 中我添加了"Test" = "My english text";对于英语和"Test" = "Mon texte français";对于法语。

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

Swift 5 与 SwiftUI:如何动态更改环境区域设置 的相关文章

  • 在 SecureField 的 SwiftUI 中切换 isSecureTextEntry

    我想实现在 SecureField 中显示和隐藏密码的功能 以下是 SecureField 的代码 我添加了按钮 该按钮将被检测到显示和隐藏 SecureField 中的文本 但 swiftUI 没有类似的功能是安全文本条目除了切换之外还有
  • 在视图之间传递变量 SwiftUI

    再次基本问题 我想让变量 anytext 对于我要添加的所有未来视图都可见且可访问 在我的例子中 变量将是String 如果是的话 程序会改变吗 Float 我怎样才能将其另存为全局变量 如果我重新启动应用程序 变量会自行删除吗 如何保存即
  • Swiftui Binding 操作尝试每帧更新多次

    我在调试文本字段输入的问题时遇到问题 信息 MacOs 蒙特利版本 12 0 Beta 21A5284e Xcode 13 0 beta 3 13A5192j 实体手机IOS 15 0 19A297e 问题说明 当我尝试输入绑定到视图模型的
  • 使用 SwiftUI 的新 iOS 14 生命周期访问 AppDelegate 中的 AppState

    我正在使用 iOS 14 中推出的 SwiftUI 新应用程序生命周期 但是 我不知道如何访问我的AppState 单一事实来源 对象应用程序代理 我需要应用程序代理在启动时运行代码并注册通知 didFinishLaunchingWithO
  • SwiftUI - 正确使用 @available() 和 #available

    我在下面的代码中遗漏了什么吗 此应用程序在 iOS 15 设备上构建 macOS Monterey b5 Xcode 13 b5 并完美执行 但在 iOS 14 7 设备上导致 SIGABRT import SwiftUI struct C
  • 如何在 SwiftUI 中管理 AVPlayer 状态

    我有 SwiftUI 中的 URL 列表 当我点击某个项目时 我会呈现一个全屏视频播放器 我有一个 EnvironmentObject它处理一些查看器选项 例如 是否显示时间码 我还有一个显示和隐藏时间码的切换开关 我只在本例中包含了该切换
  • SwiftUI:如何横向呈现全屏覆盖

    我正在制作一个应用程序 其中多个页面 视图嵌入到具有选项卡栏 菜单栏和标题的父视图中 如下所示 HeaderView MenuView TabView selection selected HomeView Page2View Page3V
  • 将日本的日期格式(2013年11月24日)转换为正常日期格式(2013-11-24)

    我的 JSP 页面上有一个日期选择器字段 选择该字段时 日期将以日语格式显示 2013年11月24日 在我的文本字段中 现在 在读取控制器中的日期字段时 我得到了这个值2013年11月24日 如何将此日期格式转换为正常日期格式 您给出的格式
  • textFieldDidChangeSelection:在视图更新期间修改状态,这将导致未定义的行为

    这是我的代码 struct CustomTextField UIViewRepresentable var placeholder String Binding var text String func makeUIView context
  • Swiftui,按钮网格视图

    我在这里检查了有关网格视图的几个问题 但我的问题有点不同 我想为按钮创建一个网格视图 以便每个按钮按下时导航到不同的视图 所以它看起来像这样 这是网格按钮视图 https i stack imgur com Q6WWB jpg 所以我在这里
  • 将阿拉伯文本分配给 R 变量

    R 无法正确显示阿拉伯文本 当我使用阿拉伯语时 我得到了非常奇怪的东西 这是一个屏幕截图 问题是我想创建一个带有阿拉伯文本的词云 我需要首先解决这个问题 R 版本 R 2 15 2 GUI 1 53 Leopard 版本 64 位 6335
  • 按下后退按钮时 SwiftUI 工具栏项目被剪裁

    我在 SwiftUI 中遇到了一种奇怪的行为 我似乎无法解决它 鉴于以下简单的示例应用程序 我遇到了这种行为 工具栏项目在初始运行时正确呈现 但导航离开并返回它会被剪切 重新创建此示例代码 内容视图 swift import SwiftUI
  • SwiftUI 转义闭包捕获变异的“self”参数

    我有一个可以通过两种方式打开的视图 一个包含提供给它的数据 另一个包含对 Firestore 文档的文档引用 我创建了两个构造函数 在第一个构造函数中我提供数据 在另一个构造函数中我提供文档参考 然后我使用此引用进行网络调用 但出现错误 E
  • 在 ARKit 和 RealityKit 中使用 Raycast 的真正好处是什么?

    RealityKit 和 ARKit 中的光线投射有何用途 我什么时候需要使用makeRaycast查询 https developer apple com documentation realitykit arview 3255315 m
  • 有没有办法获取 PHP 中可用区域设置的列表?

    在Java中 你可以调用Locale getAvailableLocales 获取可用区域设置的列表 我期待 PHP 的同等功能Locale http php net manual en class locale php类 但找不到 有没有
  • 如何将图像转换为 UIImage?

    如何转换 SwiftUIImage to a UIImage let image Image systemName circle fill let UIImage image as UIImage 没有直接的方法将 Image 转换为 UI
  • SwiftUI 更新主菜单 [已解决] kludgey

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

    如何获取本地语言的工作日和月份 My code library lubridate data lt c 10 02 2015 11 03 2015 data lubri lt dmy data wday data lubri label T
  • 如何使用 SwiftUI 获取多个屏幕上的键盘高度并移动按钮

    以下代码获取键盘显示时的键盘高度 并将按钮移动键盘高度 在转换源 ContentView 和转换目标 SecibdContentView 处以相同的方式执行此移动 但按钮在转换目标处不移动 如何使按钮在多个屏幕上移动相同 import Sw
  • SwiftUI - 在 NavigationView 中嵌套 TabView 时不显示导航栏标题

    由于应用程序特定的原因 我必须将 TabView 嵌套在 NavigationView 中 但是选项卡项目的导航栏标题不会显示 只是一个空的导航栏 有什么解决办法吗 struct ContentView View var body some

随机推荐

  • Android 全文搜索和 ListAdapter

    我已经有一个使用 SQLite 数据库和列表适配器的应用程序 我正在尝试更新我的应用程序以使用全文搜索功能 但正在努力寻找问题的答案 基本上 当我使用必要的 id 列创建虚拟表时 数据库会将其转换为文本字段 并且它不再是自动增量主键 我如何
  • 在python中将字符串日期转换为日期格式?

    如何在Python中将下面的字符串日期转换为日期格式 input date 15 MARCH 2015 expected output 2015 03 15 我尝试使用datetime strftime and datetime strpt
  • Python 中的常量究竟由什么构成?

    PEP 8 规定 that 常量通常在模块级别定义并写在所有模块中 大写字母用下划线分隔单词 例子包括MAX OVERFLOW and TOTAL 我知道这只是一个命名约定 但我很想知道是否有官方或广泛接受的定义来定义常量与半私有变量的实际
  • 将子进程的标准输出重定向到 2 个或更多子进程的标准输入

    基本上我想学习如何使用stdout of one subprocess say proc1 as stdin2 个或更多其他subprocesses say proc2 proc3 在Python中 你好 我需要zcat gz 文件并使用发
  • 带枚举的单例与带双重检查锁定的单例

    我想知道在多线程环境中实践中哪一个更好 我将 Singleton 理解为 Enum 类型在加载类时创建一个实例 除此之外我没有看到任何其他重要的东西 有什么优点和缺点吗 单例作为Enum type public enum Singleton
  • 如何分离由 subprocess.call 运行的程序?

    我正在使用 subprocess call 使用默认应用程序打开 pdf 文件 如下所示 subprocess call xdg open pdf stderr STDOUT 但是 当运行该进程时 该进程已附加到终端 我想将其分离 基本上
  • Windows 中是否有相当于 cron 的工具?

    我想知道是否有同等的cron在 Windows 中以及如何使用 PHP 以编程方式使用它 Windows 有Scheduled Tasks控制面板小程序 或更高版本的 Windows 上的管理控制台插件 但您也可以通过以下方式访问它scht
  • 防止应用程序升级时数据丢失

    我们开发了一款 Android 应用程序 并通过 MDM 移动设备管理 Soti Mobi 控制 推送新的安装和更新 发送的更新会静默升级应用程序 无需用户确认 因此 如果用户正在使用应用程序 应用程序会自动停止 升级并从头开始启动 因此用
  • grep (bash) 多行模式

    在 bash 4 3 46 1 中 我有一些多行所谓的 fasta 记录 其中每个记录都是由 gt name 和以下几行 DNA 序列 AGCTNacgtn 启动 这里有三个记录 gt chr1 AGCTACTTTT AGGGNGGTNN
  • 请求了 n 条推文,但 API 只能返回 0 错误

    我无法使用 R 中的 twitteR 包检索任何推文 例如此请求 nbahash tweets searchTwitter nba since 2013 01 01 until 2014 02 25 n 20 显示此警告消息 警告消息 在
  • 如何在 Dropbox API v2 中创建不过期令牌?

    正如标题所说 最近 Dropbox API 改版后 Token 开始有过期时间了 以前如果我不撤销的话 Token是可以永久使用的 也许出于安全原因添加了过期时间 然而 这对于我的应用来说非常不方便 我需要上传文件很长时间 可能一次超过一个
  • 使用另一个数组从数组中删除条目

    不知道该怎么做 所以非常感谢任何帮助 说我有 const array1 1 1 2 3 4 const array2 1 2 所需输出 const result 1 3 4 我想比较一下array1 and array2对于每个条目arra
  • 从 Zend Controller 插件中获取视图对象

    在我的控制器中 我有一个 postDispatch 来整合我的 FlashMessenger 消息 public function postDispatch messages this gt helper gt getHelper Flas
  • 在更新之前的代码签名证书后,如何在 Windows 10 中保留 SmartScreen 筛选器的声誉?

    我在过去 3 年里拥有代码签名证书 当我用它签署我的软件时 签名没有导致任何问题SmartScreen从 Internet 下载软件时出现警告 该证书本月到期 因此我在同一家公司续签了三年 它造成的问题是 现在当我签署我的软件时 新证书在
  • 将任务放入序列容器后无法连接到数据库

    我有一个工作完美的包 直到我决定将它的一些任务放入序列容器中 更多关于我为什么要这样做的信息 在我的情况下如何进行 SSIS 交易 现在 我不断收到错误 Execute SQL Task Error Failed to acquire co
  • 处理每个数组条目的替换,无需 Eval

    例如 我有一个任意字符串数组a 1st 2nd string 3rd nstring n 例如 我想将这些字符串传递给将其参数解释为文件的命令paste 对于固定数量的变量 我们可以使用过程替换 paste lt printf s var1
  • GCP Secret Manager:Spring Boot 应用程序中未解析环境变量和密钥

    下列的本指南 and 这段代码示例 我的里面有这个application deploy yaml spring following cloud gcp project id PROJECT ID Set during build proce
  • 按天分组并仍然显示没有行的日子?

    我有一个日志表 其中包含一个名为 logTime 的日期字段 我需要显示日期范围内的行数以及每天的记录数 问题是我仍然想展示那些日子没有记录 是否可以仅使用 SQL 来完成此操作 Example SELECT logTime COUNT F
  • 如何处理glBufferData期间的GL_OUT_OF_MEMORY错误?

    OpenGL 参考文献提到了GL OUT OF MEMORY error 记录此错误后 除了错误标志的状态外 GL 的状态未定义 功能glBufferData如果无法消化给定的数据 可能会生成此错误 但另一方面 API 似乎没有提供任何方法
  • Swift 5 与 SwiftUI:如何动态更改环境区域设置

    我必须让用户从列表中选择应用程序的语言 将下一行放入 SceneDelegate 中效果很好 因为它在开头加载指定的语言 window rootViewController UIHostingController rootView Cont