2017-07-04 32 views
0

在SWIFT 4失败| =操作符不能应用于两个NSWindowMask操作

self.window.styleMask |= NSWindowStyleMask.fullSizeContentView 

,我也想撤消

self.window.styleMask ^= NSWindowStyleMask.fullSizeContentView 

,我会在Objective-C

+0

相关:https://stackoverflow.com/questions/30761996/swift-2-0-binary-operator-cannot-be-applied-to-two -uiusernotificationtype - 从Swift 2开始使用OptionSet。 –

+0

https://stackoverflow.com/a/29339315/2303865 –

回答

0

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

斯威夫特4:

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

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

下面的代码汇编无论是在斯威夫特3 &斯威夫特4:

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

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

或者'insert(.fullSizeContentView)'和(假设OP要删除,不要切换)'remove(。 fullSizeContentView)' –

+0

啊,是的,我想插入/远程aka切换。奇怪的是,这种新的方式使窗口膨胀以包括标题,但是移除会导致它转移和调整大小,而净影响窗口向下移动并缩短?我听说有一个样本详细说明了如何使用它。也许这就是我需要的一切? – slashlos

0

这是丑陋的

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

相关问题