首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在SwiftUI上使用TextField和SecureField buggy的视图(显示奇怪的视图)

在SwiftUI上使用TextField和SecureField buggy的视图(显示奇怪的视图)
EN

Stack Overflow用户
提问于 2022-08-08 12:03:38
回答 3查看 194关注 0票数 1

在macOS上,我需要一个SwiftUI表单,它有一个TextField (用于电子邮件),然后一个SecureField (用于密码)。看起来很简单,但是当我开始在TextField中输入时,字段下面会出现一个奇怪的视图:

一些意见:

如果TextField.

  • This替换了SecureField,则不会出现,如果TextField被移除,则不会发生SecureField。当我开始键入SecureField.

  • The奇怪视图时,也会出现类似的奇怪视图,当我在fields.

  • Finally,之间更改焦点时,也会出现类似的奇怪视图。如果SecureField放在TextField之前,则不会出现。(也许我应该在UI设计中开始一个新的趋势;-)。H 217F 218

有人能提出避免或解决这个问题的方法吗?下面是代码(尽可能简化):

代码语言:javascript
复制
import SwiftUI
struct ContentView: View {
    @State var emailAddress : String = ""
    @State var password : String = ""
    var body: some View {
        Group {
            TextField("Email:", text: $emailAddress)
            SecureField("Password:", text: $password, prompt: nil)
        }
        .padding()
        Spacer()
    }
}

Xcode 13.4.1;macOS 12.5;MacBook Pro (2020)。Xcode 13.4和macOS 12.4.x也发生了这种情况。

更新2022.08.13:来自多媒体的每个请求的是一个屏幕截图,在输入SecureField时会出现奇怪的视图。这里我添加了一个额外的TextField,就像建议的那样(虽然不是零高度,所以它在屏幕截图中是可见的)。

此外,我应该注意到,您可以使奇怪的视图消失,例如,通过按ESC键。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2022-09-27 06:34:29

我找到了解决问题的方法,只需将焦点()添加到secureField中,您可以尝试,它对我有用!

票数 0
EN

Stack Overflow用户

发布于 2022-09-06 01:26:00

在MacOS12.5.1上也有同样的问题,我安装了macos 13测试版6,并且修复了错误。这似乎是SecureField和macos 12上的TextField或TextEditor之间的一种奇怪的交互。

票数 1
EN

Stack Overflow用户

发布于 2022-08-09 12:44:39

我不知道发生这种情况的原因(也许它应该给出类似于SecureField的建议),但显然,当您在实际的TextField之上拥有相同的TextField时,情况就不是这样了。

这并不完美,因为顶部有极小的空间,但它能工作,而且比奇怪的窗口更好:

代码语言:javascript
复制
import SwiftUI
struct ContentView: View {
    @State var emailAddress : String = ""
    @State var password : String = ""
    var body: some View {
        VStack {
            TextField("Email:", text: $emailAddress)
                .frame(width: 0, height: 0)

            TextField("Email:", text: $emailAddress)
            
            SecureField("Password:", text: $password, prompt: nil)
        }
        .padding()
    Spacer()
    }
}

我已经用Xcode 14 beta 3和我的MacBook Pro M1测试了它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73277582

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档