这里的新手,我正在学习如何使用API"KeyboardToolbar";这允许在SwiftUI中轻松地在键盘上方添加工具栏。我希望工具栏上的项目在按下时执行操作,但我不知道如何执行。我的简单测试代码是:
import SwiftUI
import KeyboardToolbar
struct KeyToolbar: View {
@State var text = ""
func addText() {
self.text = "Hello!"
}
let toolbarItems: [KeyboardToolbarItem] = [
.init(systemName: "plus.circle", callback: {addText()}),
.init(systemName: "italic", callback: {}),
.init(systemName: "underline", callback: {}),
.dismissKeyboard
]
var body: some View {
TextField("Text:", text: $text)
.keyboardToolbar(toolbarItems)
}
}
我得到一个错误:不能在属性初始值设定项中使用实例成员"addText";属性初始化程序在"self"可用之前运行
我试着寻找如何解决这个问题,但我不知道。如何使用键盘工具栏执行操作?
您可以使toolbarItems
成为计算属性,而不是let
声明——这样,它就可以访问addText
:
var toolbarItems: [KeyboardToolbarItem] {
return [
.init(systemName: "plus.circle", callback: {addText()}),
.init(systemName: "italic", callback: {}),
.init(systemName: "underline", callback: {}),
.dismissKeyboard
]
}