swift - 带圆角的模态面板

标签 swift cocoa modal-dialog

我想知道是否有一种方法可以显示带有圆角而不是默认尖角的模态窗口。该图显示了我所指的角。

enter image description here

我尝试更改 contentView.layer?.cornerRadius 但没有成功。我该怎么做才能获得我需要的结果?

最佳答案

经过一番努力,我终于找到了解决办法:

首先在您的界面生成器中创建一个新的无边框窗口。在该 View 中放置一个自定义框,并确保它与窗口的顶部边框留出一点空间:

enter image description here

然后在您的应用委托(delegate)中添加该窗口对象的导出:

@IBOutlet weak var saveWindow: NSWindow!

因此复制用于加载和关闭面板的扩展作为模态表:

extension NSWindow {

    public func loadPanel(named: NSWindow) {
        named.isOpaque = false
        named.backgroundColor = NSColor.clear
        named.hasShadow = false
        self.beginSheet(named, completionHandler: nil)
    }
    public func closePanel(named: NSWindow) {
        self.endSheet(named)
    }

}

如果你想打开一个面板,你只需要调用这两个函数。

window.loadPanel(named: saveWindow)

完成后:

window.closePanel(named: saveWindow)

这是结果:

enter image description here

关于swift - 带圆角的模态面板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42313168/

相关文章:

iphone - 呈现新 Controller 时取消所有模态转换

linux - Linux 上的 Swift : how to specify compiler optimizations

ios - 重新加载 collectionView 时内存泄漏 : Firebase

ios - 哪个是在 MVP 模式(swift)中初始化演示者的最佳方式

ios - 将 UIImage 绘制为 MKMapView 的 subview 与将其绘制为 map View 中的注释相比,对 CPU 的压力更小。为什么?

java - MVC 架构和模态对话框窗口

objective-c - 如何在 Objective-C 中导入 SKTUtils?

objective-c - Extern 的神秘问题

iphone - asihttp请求失败

javascript - 使用 "accept"和 "deny"创建确认框