| =运算符不能应用于两个NSWindowMask操作

时间:2017-07-04 20:24:39

标签: swift operators

在swift 4中,这失败了

self.window.styleMask |= NSWindowStyleMask.fullSizeContentView

我也想撤消

self.window.styleMask ^= NSWindowStyleMask.fullSizeContentView

就像在objective-c

中那样

2 个答案:

答案 0 :(得分:0)

在Swift中,NSWindowStyleMask(在Swift 4中,NSWindow.StyleMask)是OptionSet。您需要使用为SetAlgebra定义的方法。

斯威夫特4:

self.window!.styleMask.formUnion(NSWindow.StyleMask.fullSizeContentView)

self.window!.styleMask.formSymmetricDifference(NSWindow.StyleMask.fullSizeContentView)

下面的代码在Swift 3&斯威夫特4:

self.window!.styleMask.formUnion(.fullSizeContentView)

self.window!.styleMask.formSymmetricDifference(.fullSizeContentView)

答案 1 :(得分:0)

这很丑陋

self.window.styleMask = NSWindowStyleMask(rawValue: NSWindowStyleMask.fullSizeContentView.rawValue + panel.styleMask.rawValue)

似乎有效吗?净影响是内容在切换时缩小(按标题高度)。所以我可以回到我一直在使用的东西 - .borderless