我是iOS新手,我正在使用一个名为KeyboardKit的第三方软件包来创建一个自定义键盘。然而,我注意到它与我读过的教程略有不同。在我的代码中,我必须使用'self.',否则Xcode会显示警告。我写的代码如下。我面临的问题是我无法使用'self.'来更改变量的值。你能指导我如何做到这一点吗?
import UIKit
import KeyboardKit
import SwiftUI
class KeyboardViewController: KeyboardInputViewController {
@State var text = "init" //the variable
override func viewWillSetupKeyboard() {
super.viewWillSetupKeyboard()
setup { controller in
VStack(spacing: 0) {
Button(self.text){
self.text = "changed" //change the variable
}
Text(self.text) //binding the variable
}
}
}
}
字符串
1条答案
按热度按时间0md85ypi1#
首先要注意的是……
SwitUI是一个声明式框架,UIKit是一个命令式框架。
这意味着使用UIKit,我们手动告诉它何时显示新数据,SwiftUI通过非常严格的协议自己计算何时显示新数据。
当它们之间的接口,你必须考虑到这两个框架,并发挥与两者的规则。
SwiftUI使用
DynamicProperty
来识别何时重绘,这些DynamicProperty
是以“属性 Package 器”的形式存在的。大多数SwiftUI Package 器必须位于iOS 13-16中的SwiftUI
View
中,有两个例外(iOS 17有更多),最相关的是@Published
,它是Combine
属性 Package 器,因此您可以将其用作发布者,并且它还触发SwiftUI重新加载。这里是一个基本的设置,我还没有测试代码,所以可能会有错别字。
字符串