NSProgressIndicator的简单使用

如图所示NSProgressIndicator的几种类型

属性说明

Progress Indicator控件的主要UI属性说明如下

1>style:有线性增长的Bar和圆形转圈动画 Spinning两种样式。

2>Behavior中的 Indeterminate:勾选,不指示具体的进度百分比,只是一个渐变的动画效果。取消勾选后,通过它的 double value属性说明,可以显示 double value相对于 Maximum

值的百分比。

3>Value:有 Minimum、 Maximum和 Current这3个选择,分别代表最小值、最大值和当前值

//进入指示器NSProgressIndicator

    fileprivate let progressIndicator : NSProgressIndicator = {

        let indicator = NSProgressIndicator(frame: NSMakeRect(40, 50, 100, 10))

        indicator.style = .spinning     // NSProgressIndicator.Style.spinning

        indicator.layer?.backgroundColor = NSColor.cyan.cgColor

        indicator.controlSize = .regular        //NSControl.ControlSize.regular

        indicator.sizeToFit()

        

        return indicator

    }()

    fileprivate var count:Double?

    fileprivate var showTimer: Timer?

    

    func startAnimationProgressIndicator() {

        self.progressIndicator.isHidden = false

        self.progressIndicator.startAnimation(nil)

    }

    func stopAnimationProgressIndicator() {

        self.progressIndicator.isHidden = true

        self.progressIndicator.startAnimation(nil)

    }

 

 

//修改进度值

self.progressIndicator.doubleValue = 1

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一份使用 Xcode 编写的简单示例代码,可以实现输入视频编号、点击下载按钮、自动下载m3u8视频到指定文件夹的功能。请注意,这只是一个示例,需要您自己根据具体情况进行修改和完善。 1. 创建一个新的 macOS 应用程序项目,并将窗口大小设置为适当大小。 2. 在 `ViewController.swift` 文件中,添加以下代码: ```swift import Cocoa class ViewController: NSViewController { @IBOutlet weak var videoNumberTextField: NSTextField! @IBOutlet weak var progressIndicator: NSProgressIndicator! var downloadTask: URLSessionDownloadTask? override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. progressIndicator.isHidden = true } @IBAction func downloadButtonClicked(_ sender: NSButton) { guard let videoNumber = Int(videoNumberTextField.stringValue), videoNumber >= 1, videoNumber <= 20000 else { // 输入的视频编号不合法 return } progressIndicator.isHidden = false progressIndicator.startAnimation(nil) let session = URLSession.shared let url = URL(string: "http://example.com/videos/\(videoNumber).m3u8")! let downloadTask = session.downloadTask(with: url) { (location, response, error) in if let location = location { let destinationURL = self.getDestinationURL(for: videoNumber) do { try FileManager.default.moveItem(at: location, to: destinationURL) DispatchQueue.main.async { self.progressIndicator.stopAnimation(nil) self.progressIndicator.isHidden = true let alert = NSAlert() alert.messageText = "下载完成" alert.runModal() } } catch { print("下载视频失败:\(error.localizedDescription)") } } else { print("下载视频失败:\(error?.localizedDescription ?? "")") } } downloadTask.resume() self.downloadTask = downloadTask } private func getDestinationURL(for videoNumber: Int) -> URL { let documentsURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0] let fileName = "\(videoNumber).mp4" let fileURL = documentsURL.appendingPathComponent(fileName) return fileURL } } ``` 3. 在 `Main.storyboard` 中,将窗口中的 TextField 和 Button 拖拽到 `ViewController.swift` 文件中的 `@IBOutlet` 和 `@IBAction` 中。 4. 运行项目,输入视频编号,点击下载按钮,即可开始下载 m3u8 视频文件。下载完成后,会弹出一个提示框。 需要注意的是,示例代码中使用了一个假的视频链接 `http://example.com/videos/\(videoNumber).m3u8`,如果您想要使用真实的视频链接,请将其替换为您自己的链接。 另外,示例代码中只下载了一个 m3u8 文件,如果您需要下载多个分片文件,并进行合并,需要进行额外的编程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值