gpt4 book ai didi

ios - UIAlertController + UIProgressView + macCatalyst

转载 作者:行者123 更新时间:2023-12-01 19:30:01 31 4
gpt4 key购买 nike

我使用以下简单类在我的 iOS 应用程序中显示带有进度条的警报 View 。没关系,但是当我尝试在为 macOS 构建的应用程序中使用相同的代码时,进度条不可见(请参阅附件图像)。
即使在 macOS 上,我应该改变什么才能有进度条?
Progress bar on iOS
Progress bar on macOS

protocol ProgressDelegate: class {
func onProgressCanceled()
}

class ProgressAlert {

private let alert: UIAlertController
private var progressBar: UIProgressView

init(title: String, delegate: ProgressDelegate?) {

alert = UIAlertController(title: title, message: "",
preferredStyle: .alert)

progressBar = UIProgressView(progressViewStyle: .default)
progressBar.tintColor = Theme.appColor

alert.addAction(UIAlertAction(title: "Cancel", style: .cancel) { alertAction in
delegate?.onProgressCanceled()
})
}

func present(from uivc: UIViewController) {

uivc.present(alert, animated: true, completion: {

let margin: CGFloat = 16.0
let rect = CGRect(x: margin, y: 56.0,
width: self.alert.view.frame.width - margin * 2.0, height: 2.0)
self.progressBar.frame = rect
self.alert.view.addSubview(self.progressBar)
})
}

func dismiss(completion: (() -> Void)?) {

alert.dismiss(animated: true, completion: completion)
}

func setProgress(_ value: Float) {
progressBar.setProgress(value, animated: true)
print("Updating download: \(value)")
}
}

最佳答案

进度条实际上是按预期添加的,但是 Mac Catalyst 隐藏了 UIAlertController查看并呈现原生 macOS NSAlert反而。
通过设置 alert.view.isHidden 可以看到带有进度条的原始警报。至false :
1
请记住,您一开始就不应该向警报 Controller 添加自定义 View 。引自 docs :

Important

The UIAlertController class is intended to be used as-is and does notsupport subclassing. The view hierarchy for this class is private andmust not be modified.

关于ios - UIAlertController + UIProgressView + macCatalyst,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63509246/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com