如何获得类似屏幕截图效果的屏幕闪光效果?

ch_*_*end 0 macos animation screenshot nsview swift

有没有什么办法可以让某个 NSView 按需截取屏幕截图时产生的闪屏效果?我的问题不是用 Swift 以编程方式闪烁屏幕的副本(在“截取屏幕截图”上),因为我需要一个针对 osx 的解决方案,而不是针对 ios 的解决方案,并且方法不同。

Jer*_* Sh 7

像这样的事情可能会奏效

func showScreenshotEffect() {
    let snapshotView = UIView()
    snapshotView.translatesAutoresizingMaskIntoConstraints = false
    view.addSubview(snapshotView)
    // Activate full screen constraints
    let constraints:[NSLayoutConstraint] = [
        snapshotView.topAnchor.constraint(equalTo: view.topAnchor),
        snapshotView.leadingAnchor.constraint(equalTo: view.leadingAnchor),
        snapshotView.trailingAnchor.constraint(equalTo: view.trailingAnchor),
        snapshotView.bottomAnchor.constraint(equalTo: view.safeAreaLayoutGuide.bottomAnchor)
    ]
    NSLayoutConstraint.activate(constraints)
    // White because it's the brightest color
    snapshotView.backgroundColor = UIColor.white
    // Animate the alpha to 0 to simulate flash
    UIView.animate(withDuration: 0.2, animations: { 
        snapshotView.alpha = 0
    }) { _ in
        // Once animation completed, remove it from view.
        snapshotView.removeFromSuperview()
    }
}
Run Code Online (Sandbox Code Playgroud)