如何在swift ui watch os中的同一屏幕中添加键盘和文本字段[关闭]

Posted

技术标签:

【中文标题】如何在swift ui watch os中的同一屏幕中添加键盘和文本字段[关闭]【英文标题】:How to add the keypad and the textfield in the same screen in swift ui watch os [closed] 【发布时间】:2021-08-29 05:02:56 【问题描述】:

我正在使用 swift ui 为手表操作系统设计一个应用程序。我想实现一个有点像这样的用户界面

文本字段和数字键盘在同一屏幕上。但是当我们实现内置文本字段时,它会将我们导航到一个单独的屏幕,我们可以在其中选择数字键盘、手势书写等选项,然后根据选择出现一个单独的屏幕来添加用户输入(想象选择的选项为数字键盘),然后输入的值绑定到我最初创建的文本字段。所以我想要实现的是限制用户只能使用数字键盘,并且数字键盘和文本字段都应该与我在上面附加的示例 UI 中的屏幕相同。这是否可以使用内置的文本字段组件来处理,还是我应该重写逻辑来实现 UI 和用户交互?提前致谢。

【问题讨论】:

您需要使用标签和按钮创建自己的 UI 哦,谢谢@Paulw11。文本字段没有任何我们可以调整以显示在同一屏幕上的属性吗? 如果您不需要使用系统输入法,则不需要使用文本字段。只需通过单击按钮更改文本并将其显示为Text。唯一的问题是,我不确定在小型设备上按下多少个按钮会很舒服。 【参考方案1】:
struct ContentView: View 
@State var text = ""
var body: some View 
    VStack 
        Text(text)
        LazyVGrid(columns: [GridItem(.fixed(50)), GridItem(.fixed(50)), GridItem(.fixed(50))], alignment: .center, spacing: nil, pinnedViews: [], content: 
            ForEach(1..<10)  item in
                Button(action: 
                    text.append("\(item)")
                    print(text)
                , label: 
                    ZStack 
                        Rectangle()
                            .foregroundColor(.gray)
                        Text("\(item)")
                            .font(.headline)
                    
                )
                
                
                    
                    
            
        )
    
    

【讨论】:

以上是关于如何在swift ui watch os中的同一屏幕中添加键盘和文本字段[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何从watch os swift获取设备ID

如何在 Objective-C 中的 OS2 中将数据从 Iphone 发送到 Apple Watch

如何在 Watch OS 2 中引用不支持的框架

Xcode 7 支持 watch OS1 和 OS2

MAC OS Xcode Swift 2.2 全屏模式

在 Swift 中的同一个 VC 上点击按钮后,有没有办法显示以前隐藏在早期代码行中的 UI 元素?