当selectedOption的值更改时,我想调用一个函数。在SwiftUI中,有没有一种类似于编辑TextField的方法?
具体来说,我想在用户更改selectedOption时保存选择的选项。
这是我的选择器:
struct BuilderPicker: View {
let name: String
let options: Array<String>
@State var selectedOption = 0
var body: some View {
HStack {
Text(name)
.font(.body)
.padding(.leading, 10)
Picker(selection: $selectedOption, label: Text(name)) {
ForEach(0 ..< options.count) {
Text(self.options[$0]).tag($0)
}
}.pickerStyle(SegmentedPickerStyle())
.padding(.trailing, 25)
}.onTapGesture {
self.selectedOption = self.selectedOption == 0 ? 1 : 0
}
.padding(.init(top: 10, leading: 10, bottom: 10, trailing: 0))
.border(Color.secondary, width: 3)
.padding(.init(top: 0, leading: 15, bottom: 0, trailing: 15))
.font(.body)
}
}
我仍然是SwiftUI的新手,希望获得一些帮助。谢谢!
如果在视图中使用@State值,则不需要多余的变量 name
struct BuilderPicker: View {
// let name: String = ""
let options: Array<String> = ["1", "2","3","4","5"]
@State var selectedOption = 0
var body: some View {
HStack {
Text(options[selectedOption])
.font(.body)
.padding(.leading, 10)
Picker(selection: $selectedOption, label: Text(options[selectedOption])) {
ForEach(0 ..< options.count) {
Text(self.options[$0]).tag($0)
}
}.pickerStyle(SegmentedPickerStyle())
.padding(.trailing, 25)}
// }.onTapGesture {
// self.selectedOption = self.selectedOption == 0 ? 1 : 0
// }
.padding(.init(top: 10, leading: 10, bottom: 10, trailing: 0))
.border(Color.secondary, width: 3)
.padding(.init(top: 0, leading: 15, bottom: 0, trailing: 15))
.font(.body)
}
}
如果需要对@State进行单独的操作,最简单的方法是在视图中添加一行:onReceive()。
HStack {
Text("")
.font(.body)
.padding(.leading, 10)
Picker(selection: $selectedOption, label: Text("")) {
ForEach(0 ..< options.count) {
Text(self.options[$0]).tag($0)
}
}.pickerStyle(SegmentedPickerStyle())
.padding(.trailing, 25)}
// }.onTapGesture {
// self.selectedOption = self.selectedOption == 0 ? 1 : 0
// }
.padding(.init(top: 10, leading: 10, bottom: 10, trailing: 0))
.border(Color.secondary, width: 3)
.padding(.init(top: 0, leading: 15, bottom: 0, trailing: 15))
.font(.body)
.onReceive([self.selectedOption].publisher.first()) { (value) in
print(value)
}
问题内容: 我有一个Jcheckbox,但只有勾号显示了它的选中状态,有没有一种方法可以将其更改为十字形或圆形?并且有一种方法可以将灰色背景更改为白色,setBackground似乎没有什么不同? 问题答案: 用户setPressedIcon,setIcon和setDisabledIcon
问题内容: 我正在开发一种将支持多个数据库引擎(Oracle,MSSQL,MySQL)的产品。对于Oracle,我更喜欢使用Sequences而不是Sequences表,以避免在大量安装时潜在的并发和锁定问题,但是其他数据库引擎不支持Sequence。此外,我宁愿在每个表中使用一个序列,而不是全局序列(例如),因此不起作用。有没有办法在运行时动态选择策略? 问题答案: 实际上,Hibernate会
问题内容: 我正在建立一个带有flask的网站,其中用户具有帐户并能够登录。我正在使用flask-principal作为登录部分和角色管理。有没有办法让用户的会话在5分钟或10分钟后过期?我在flask文档或flask-principal文档中找不到该文件。 我想到了一种手动方法,在登录时在服务器端设置一个带有时间标签的变量,并在用户执行下一个操作时,服务器会验证该时间戳记上的时间增量并删除会话。
问题内容: 我在模态内部的模板中有链接。当我单击它们时,当前页面会更改,但是叠加层和模式保留。我可以将所有模板以模态形式添加到每个链接中,但是有更好的方法吗?例如,在成功更改路线后自动将其关闭,或者每个模板仅添加一个即可处理所有链接? 问题答案: 如果希望每当成功更改路线时都关闭所有打开的模态,则可以通过监听事件在一个中心位置进行操作,例如在应用程序的运行块中: 在这里,您可以看到该服务已注入,您
问题内容: 我正在建立一个带有flask的网站,其中用户具有帐户并能够登录。我正在使用flask- principal作为登录部分和角色管理。有没有办法让用户的会话在5分钟或10分钟后过期?我在flask文档或flask- principal文档中找不到该文件。 我想到了一种手动方法,在登录时在服务器端设置一个带有时间标签的变量,并在用户执行下一个操作时,服务器会验证该时间戳记上的时间增量并删除会
问题内容: 有没有办法绕过python中的类的构造函数? 例: 现在,我想创建一个实例。看起来可能像这样,但是这种语法不正确。 编辑: 一个更复杂的示例: 假设我有一个对象,目的是存储一个参数并对其进行一些计算。但是,该参数并未按原样传递,而是被嵌入到巨大的参数文件中。它可能看起来像这样: 现在,我想转储并加载该对象的实例。但是,在加载该对象时,我只有一个变量,并且无法调用构造函数,因为它需要参数