SwiftUI TextField:点击后键盘不弹出

3

我在HStack中有一个简单的TextField和一个按钮。

        HStack {
            TextField("Level Name", text: $levelName)
                .font(.title)
                .padding(10)
                .background(
                    RoundedRectangle(cornerRadius: 15)
                        .strokeBorder(Color.primary.opacity(0.5), lineWidth: 3))
            
            Button(action: {

            }) {
                Text("Submit").font(.title)
            }
        }

点击文本框在我的模拟器上不能显示键盘,会给出控制台警告:
[LayoutConstraints] 无法同时满足约束条件。以下列表中的至少一个约束条件可能不是所需的。 请尝试: (1) 查看每个约束条件,并尝试确定您不需要哪些条件; (2) 找到添加了不必要的约束条件的代码,并进行修复。 (注意:如果您看到了NSAutoresizingMaskLayoutConstraints,而您无法理解,请参阅UIView属性translatesAutoresizingMaskIntoConstraints的文档) ( "< NSAutoresizingMaskLayoutConstraint:0x600002bba8f0 h=--& v=--& amp; _UIButtonBarButton:0x7fdbcbc52e90.height == 0 (active)>", "< NSLayoutConstraint:0x600002bb4050 _UIUCBKBSelectionBackground:0x7fdbcbc53890.bottom == _UIButtonBarButton:0x7fdbcbc52e90.bottom - 6 (active)>", "< NSLayoutConstraint:0x600002bbff70 V:|-(6)-[_UIUCBKBSelectionBackground:0x7fdbcbc53890] (active, names: '|':_UIButtonBarButton:0x7fdbcbc52e90 )>" )
将尝试通过打破约束来恢复 < NSLayoutConstraint:0x600002bb4050 _UIUCBKBSelectionBackground:0x7fdbcbc53890.bottom == _UIButtonBarButton:0x7fdbcbc52e90.bottom - 6 (active)> 在UIViewAlertForUnsatisfiableConstraints上设置一个符号断点以在调试器中捕获此错误。在 中列出的UIView上的UIConstraintBasedLayoutDebugging类别中的方法也可能会有所帮助。

你能否添加其他相关的代码呢? - YodagamaHeshan
1
在模拟器(14.3)Xcode 12.3中运行该程序会出现相同的警告,但键盘仍然会出现。您是否在模拟器设备菜单中选中了“连接硬件键盘”? - jnpdx
我设置了一个简单的项目,提供的代码是 ContentView.swift 中的确切内容。我去哪里可以检查选项? - don
在模拟器中,进入:“I/O” => “Keyboard” => “Toggle Software Keyboard”。 - Jonas Deichelmann
1个回答

0

你的代码可用。键盘弹出。运行iOS 15.1。

struct TestView: View {
    
    @State var levelName = ""
    
    var body: some View {
           
        HStack {
            TextField("Level Name", text: $levelName)
                .font(.title)
                .padding(10)
                .background(
                    RoundedRectangle(cornerRadius: 15)
                        .strokeBorder(Color.primary.opacity(0.5), lineWidth: 3))
            
            Button(action: {
                
            }) {
                Text("Submit").font(.title)
            }
        }
        
    }
    
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接