为什么这个 SwiftUI Picker 代码不起作用?

2024-04-18

Xcode:11.2.1

下面的代码是一个包含两个组件的简单表单;选择器(选择字母)和文本(显示所选字母)。代码编译并运行,但是当选择一个字母时,它不会出现在“选定...”文本中。此外,第一次(仅)选择一个字母时,Xcode 会显示一个(虚假的?)运行时警告。

struct ContentView: View {

    @State private var letter = ""
    private let letters = ["Alpha", "Bravo", "Charlie"]

    var body: some View {
        NavigationView {
            Form {
                Picker("Select a letter", selection: $letter) {
                    ForEach(0..<letters.count) {
                        Text(self.letters[$0])
                    }
                }
                Text("Selected letter: \(letter)")
            }
            .navigationBarTitle("Main Menu")
        }
    }
}

有关信息:运行时警告:

[TableView] 仅警告一次:UITableView 被告知布局其 不在视图层次结构中的可见单元格和其他内容 (表视图或其超级视图之一尚未添加到 窗户)。这可能会通过强制表视图内的视图来导致错误 在没有准确信息的情况下加载并执行布局(例如表视图 边界、特征集合、布局边距、安全区域插入等),以及 由于额外的布局也会造成不必要的性能开销 通过。在以下位置创建一个符号断点 UITableViewAlertForLayoutOutsideViewHierarchy 在 调试器并查看导致这种情况发生的原因,这样就可以避免这种情况 如果可能的话,完全执行操作,或者推迟到表视图完成为止 已添加到窗口。表格视图: <_ttc7swiftuip33_bfb370ba5f1baddc9d83021565761a4925 uitableview>>


Picker 中的 ForEach 类型应与选择类型对齐。

这是一个应该适合您的更正代码:

@State private var letter = ""
private let letters = ["Alpha", "Bravo", "Charlie"]

var body: some View {
    NavigationView {
        Form {
            Picker("Select a letter", selection: $letter) {
                ForEach(letters, id: \.self) { option in
                    Text(option)
                }
            }
            Text("Selected letter: \(letter)")
        }
        .navigationBarTitle("Main Menu")
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么这个 SwiftUI Picker 代码不起作用? 的相关文章

随机推荐

  • CSS 填充高度的 100%。不同的浏览器尺寸

    我有一个侧边栏 蓝色 设置为向左浮动 我已将高度设置为 100 将 body 和 html 高度设置为 100 它工作正常 问题是 当浏览器小于内容窗格 div 红色 时 侧边栏的高度将变得与浏览器的高度相同 因此 如果我向下滚动 侧边栏比
  • cmake中如何连接字符串

    有没有办法在cmake中连接字符串 我有一个仅包含具有主要方法的 cpp 文件的文件夹 我认为只需在所有 src 文件中使用 foreach 就很容易了 这就是我到目前为止所得到的 project opengl tutorial cmake
  • 将浮点值从大端转换为小端

    是否可以转换float是从大端到小端吗 我有来自 PowerPC 平台的大端值 我通过 TCP 将其发送到 Windows 进程 小端值 这个值是一个float 但是当我memcpy将值转换为 Win32 float 类型 然后调用 byt
  • 按类名称收集元素,然后单击每个元素 - Puppeteer

    使用 Puppeteer 我想获取页面上具有特定类名的所有元素 然后循环并单击每个元素 使用 jQuery 我可以通过以下方式实现此目的 var elements a showGoals toArray for i 0 i lt eleme
  • 在 LINQ 中返回 null 而不是默认值

    我有 LINQ 查询 它必须检索一些 DateTime 值 有时我没有匹配项 我必须为该 DateTime 值返回 NULL 而不是 DateTime 的默认值 如何避免这种情况并返回 NULL 而不是默认值 My LINQ Created
  • Zip 文件包含相同的文件但具有不同的哈希值?

    我使用 php 创建了数百个文件夹和文本文件 然后将它们添加到 zip 存档中 这一切都工作正常 但如果我使用相同的文件夹和文件创建另一个 zip 存档 新存档将具有与第一个存档不同的哈希值 如果我使用 winrar 而不是 php 创建存
  • Axis2C 非官方与 Axis2C 员工

    我将开发一个应用程序 该应用程序将使用一些基于 SOAP 的 Web 服务框架 我做了一些研究 我有点喜欢 Axis2C 框架 但在一些主题中 我发现最初的 Axis2C 实现存在内存泄漏 并且它的官方开发已停止 幸运的是 有 Axis2C
  • 我可以在浏览器中启动 socket.io/websocket 服务器吗?

    之前有人问过这个问题 答案是否定的 但是现在 有了 browserify webpack 我可以像在服务器上那样编写代码吗 它会在浏览器中运行 还是有任何限制使这变得不可能 你不能 在浏览器中启动服务器需要访问浏览器中根本不存在的低级功能
  • 如何让 ESLint 在 VSCode 中检查 HTML 文件?

    我有一个 Javascript 浏览器项目分为多个文件 并且无法让 ESLint 在同一全局范围下对 HTML 文件的脚本标记进行 lint 处理 以便一个文件中的类和函数的声明和调用可以在另一个文件中识别 这是我的项目结构 这是食物的内容
  • UnknownEntityTypeException:无法找到持久化器(Hibernate 5.0)

    在下面的代码中 当我尝试执行时Main java我遇到异常 Exception in thread main org hibernate UnknownEntityTypeException Unable to locate persist
  • 如何在方案中向后打印字符串?

    我知道如果我按照以下方式编写方案代码并输入 单词 a b c 它将以相同的顺序输出列表 您能告诉我是否有一种方法可以以相反的顺序打印出来 例如 列出 c b a 它需要是我以相反顺序打印出来的用户输入 所以 我不能称之为 反向 a b c
  • jquery add方法及实现

    好的 从我之前的帖子中我得到了很多好的反馈 我开始这个问题是为了开始一个新问题并添加我拥有的完整代码 我知道有些事情搞砸了 但这是我的方法和实现 jquery validator addMethod passwordRules functi
  • 使用 Json.net 仅将接口属性序列化为 JSON

    有了这样一个简单的类 接口 public interface IThing string Name get set public class Thing IThing public int Id get set public string
  • enumerateBodiesAlongRayStart 在 Xcode 6 中将“Chance”打印到控制台

    我正在使用 enumerateBodiesAlongRayStart 并且此方法不断地将单词 Chance 打印到我的控制台 有什么办法可以抑制这种情况吗 这是怎么回事 self gameScene physicsWorld enumera
  • std::ignore 用于忽略未使用的变量

    这是一个好的使用方法吗std ignore忽略未使用的变量 假设我有一个这样的函数 void func int i for some reason I don t need i anymore but I cannot change sig
  • MSTest - 如何为 UnitTest 项目初始化 log4net?

    我有一个 Visual Studio 单元测试项目 用于测试 ASP NET MVC 项目 添加程序集级别log4net Config XmlConfiguratorAssemblyInfo cs 的属性不起作用 SO 上的其他人发现他们必
  • 多个参与者,相同的用例 [用例]

    我试图描述一个用例 其中系统内的多个参与者可以执行相同的活动 例如 假设 作为示例 我想要使用 更新客户端 用例 但几个已确定的参与者可以执行此操作 Manager Chief Executive Customer Service Repr
  • 一个单元如何测试基于过程或基于事件的代码部分

    我确信来自这个演示文稿 http www masukomi org talks unit testing talk 2 index xul data slide data txt page2以及网站上的其他评论 我需要学习单元测试 我还意识
  • 将事件发送到特定线程

    我有一种情况 我想要一个线程来处理一些顺序逻辑 该线程有时需要与主线程交互才能更新用户输入 但它应该继续运行 否则不会影响主线程 我希望以事件驱动的方式执行此操作 以便主线程不必为中断而极力控制其他线程 做这个的最好方式是什么 是否有类似于
  • 为什么这个 SwiftUI Picker 代码不起作用?

    Xcode 11 2 1 下面的代码是一个包含两个组件的简单表单 选择器 选择字母 和文本 显示所选字母 代码编译并运行 但是当选择一个字母时 它不会出现在 选定 文本中 此外 第一次 仅 选择一个字母时 Xcode 会显示一个 虚假的 运