【发布时间】:2021-12-29 19:52:37
【问题描述】:
我希望能够显示系统键盘,并且我的应用可以在不使用 TextField 或类似名称的情况下从键盘获取输入。我的简单示例应用如下:
struct TypingGameView: View {
let text = “Some example text”
@State var displayedText: String = ""
var body: some View {
Text(displayedText)
}
}
我正在制作一个记忆应用程序,所以当我用户在键盘上输入输入时,它应该从text 中获取下一个单词并将其添加到displayedText 以显示在屏幕上。显示视图时,键盘应该会自动弹出。
如果有,原生 SwiftUI 解决方案会很棒,可能如下:
struct TypingGameView: View {
let text = “Some example text”
@State var displayedText: String = ""
var body: some View {
Text(displayedText)
.onAppear {
showKeyboard()
}
.onKeyboardInput { keyPress in
displayedText += keyPress
}
}
}
如果有某种方法,TextField 可以工作 1. 使输入的任何内容都不会显示在 TextField 中,2. 禁用点击文本(例如移动光标或选择),3.禁用删除文本。
【问题讨论】:
-
我在 SwiftUI 上做得很少,但是有没有办法在屏幕边界之外放置一个
TextField,这样可以满足您的需要吗? -
@PhillipMills 可能,它不是最优雅的解决方案,所以如果 SwiftUI 中内置了一些用于此功能的东西,我宁愿采用它,但可能只需要将它放在屏幕之外如果不存在其他解决方案,则限制/隐藏某些东西。