SwiftUI列表,使用TextEditor以编程方式添加行并移动键盘焦点

时间:2020-07-29 13:56:16

标签: swiftui

我正在尝试将C#/。Net应用程序移植到SwiftUI,并且我在尝试一些基本的东西。我有一个包含行的列表,其中每行包含一些Text,Picker和TextEditor。当用户TAB在文本编辑器中时,我想添加新行并将键盘焦点移至该行。

因此,用.Net术语来说,是一个带有源(行)的事件,然后以编程方式添加新行并设置键盘焦点。在SwiftUI中,这似乎相当复杂。到目前为止,我所做的是添加了一个更复杂的绑定,以便在用户进入选项卡时设置一个标志,像这样...

TextEditor(text: Binding( 
get: { evidence }, 
set: { value in
if value.hasSuffix("\t") { 
    tabDetected = true
} else { 
    evidence = value }
} ))

然后在父视图上这样

.onChange(of: tabDetected) { value in 
    if value {
        document.addFinding(practice: practice)
        tabDetected = false
    }
}

这仍然不能识别“事件”的来源,并且我找不到移动键盘焦点的方法。对我来说,这似乎很复杂,有什么更好的建议吗?

0 个答案:

没有答案