2017-07-04 58 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

相關問題