Enable/disable 行基于 MultipleSelectorRow 的值
Enable/disable row based on the value from MultipleSelectorRow
这是一个与名为 Eureka 的 Swift 开源项目相关的问题,我将此问题发布到 SO 上,因为他们会在此处监控他们的标签。
我创建了一个表单,其中有一个 MultipleSelectorRow
,然后是一个 TextRow
。默认情况下禁用 TextRow
。 MultipleSelectorRow
显示选项列表。
form
+++ Section()
<<< MultipleSelectorRow<String>("Lead") {
[=11=].title = "Lead"
[=11=].options = ["Yahoo", "Yelp", "Google", "Referral or Other"]
}
.onPresent { from, to in
to.navigationItem.rightBarButtonItem = UIBarButtonItem(barButtonSystemItem: .Done, target: from, action: #selector(ViewController.multipleSelectorDone(_:)))
}
<<< TextRow("Referral") {
[=11=].title = "Note Referral or Other"
[=11=].disabled = "$Lead != 'Referral or Other'"
}
我想要的是,如果用户选择最后一个选项,推荐或其他,我希望启用TextRow
。
我上面的当前实现没有这样做。它保持禁用状态。我在这里做错了什么?
根据定义 MultipleSelectorRow<T>
将 Set<T>
作为值类型,您似乎错误地期望一个字符串值。
话虽如此,您应该尝试使用此谓词...
[=10=].disabled = "NOT $Lead contains 'Referral or Other'"
或者..
[=11=].hidden = Condition.Function(["Lead"]) { form in
if let r1 : MultipleSelectorRow <String> = form?.rowByTag("tag1") {
return r1.value.contains("Referral or Other") == false
}
return false
}
这是一个与名为 Eureka 的 Swift 开源项目相关的问题,我将此问题发布到 SO 上,因为他们会在此处监控他们的标签。
我创建了一个表单,其中有一个 MultipleSelectorRow
,然后是一个 TextRow
。默认情况下禁用 TextRow
。 MultipleSelectorRow
显示选项列表。
form
+++ Section()
<<< MultipleSelectorRow<String>("Lead") {
[=11=].title = "Lead"
[=11=].options = ["Yahoo", "Yelp", "Google", "Referral or Other"]
}
.onPresent { from, to in
to.navigationItem.rightBarButtonItem = UIBarButtonItem(barButtonSystemItem: .Done, target: from, action: #selector(ViewController.multipleSelectorDone(_:)))
}
<<< TextRow("Referral") {
[=11=].title = "Note Referral or Other"
[=11=].disabled = "$Lead != 'Referral or Other'"
}
我想要的是,如果用户选择最后一个选项,推荐或其他,我希望启用TextRow
。
我上面的当前实现没有这样做。它保持禁用状态。我在这里做错了什么?
根据定义 MultipleSelectorRow<T>
将 Set<T>
作为值类型,您似乎错误地期望一个字符串值。
话虽如此,您应该尝试使用此谓词...
[=10=].disabled = "NOT $Lead contains 'Referral or Other'"
或者..
[=11=].hidden = Condition.Function(["Lead"]) { form in
if let r1 : MultipleSelectorRow <String> = form?.rowByTag("tag1") {
return r1.value.contains("Referral or Other") == false
}
return false
}