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

标签 swift operators

在 swift 4 中这失败了

self.window.styleMask |= NSWindowStyleMask.fullSizeContentView

我还想撤消

self.window.styleMask ^= NSWindowStyleMask.fullSizeContentView

正如我在 Objective-c 中所做的那样

最佳答案

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

swift 4:

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

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

下面的代码可以在 Swift 3 和 Swift 4 中编译:

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

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

关于swift - |= 运算符不能应用于两个 NSWindowMask 操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44913589/

相关文章:

css - 我可以使用哪些 CSS 运算符来添加更多页面名称?通配符?

c - 有没有办法预测未定义的行为或实现定义的行为?

ios - 按 tabbar 并在 prefersLargeTitles = true iOS 中调用 Scroll to top

ios - 从另一个 View Controller 中的 UI 按钮更新 UITableView

ios - Stripe STPAddCardViewController 导航栏不显示

ios - 为什么 NSTimer 在 swift 中只工作一次

c - 在 c 中对 +、- 等运算符使用枚举时出现问题

c - 在 C 中,在声明中使用 ":"运算符而不是条件运算符

Haskell 点运算符 : what difference does it make exactly?

ios - 使用 Alamofire 调用服务器时未调用 UICollectionView cellForItemAtIndexPath