SwiftUI ActionSheet 禁用按钮
Posted
技术标签:
【中文标题】SwiftUI ActionSheet 禁用按钮【英文标题】:SwiftUI ActionSheet disabled button 【发布时间】:2021-05-30 02:04:36 【问题描述】:这似乎是一个简单的问题,但我正在寻找一种方法来禁用 SwiftUI 中 ActionSheet
中的一个(或多个,我想是)按钮。例如,如果某项基于应用程序的状态是非法的,我不想让用户点击按钮 - 实际上,我可能会更改文本来解释它被禁用的原因。
Xcode 自动完成功能并没有真正为我带来任何好处,文档(here 和 here)也没有给我任何帮助。我最好/唯一的选择是根本不把按钮放在ActionSheet
的按钮列表中吗? (有点让用户推断它为什么不存在......)
非常感谢您的建议!
我的简单代码:
private func getActionSheet() -> ActionSheet
let buttons: [ActionSheet.Button] = [
.default(Text("This is fine...")) foo() ,
.default(Text("This is forbidden - disable me!")) foo() ,
.cancel()
]
return ActionSheet(title: Text("Do it!"), buttons: buttons)
【问题讨论】:
操作表没有禁用功能。为什么不只显示自定义视图?还是菜单? 【参考方案1】:对于非破坏性操作,您可以简单地显示一个菜单。他们支持.disabled(true)
修饰符。
var body: some View
Menu("Do it!")
Button("This button works fine", action: )
Button("This one is disabled", action: )
.disabled(true)
【讨论】:
以上是关于SwiftUI ActionSheet 禁用按钮的主要内容,如果未能解决你的问题,请参考以下文章
保存 swiftUI 的用户凭据 - 密码 ActionSheet 调用
在 SwiftUI 中的 ActionSheet 上设置辅助功能标识符