macos – 不可调整大小的窗口swift

前端之家收集整理的这篇文章主要介绍了macos – 不可调整大小的窗口swift前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个名为Hardness的NSViewController,我不需要让用户调整它的大小.当然,我可以在每次用户尝试时重新调整它,但有没有办法让用户打开一个窗口到全屏,或者拉伸窗口?
编辑/更新:Xcode 8.2.1•Swift 3.0.2

NSWindow有一个名为styleMask的属性,允许您控制用户可以使用哪种控件.如果您不想让用户调整窗口大小,则必须使用mutating方法remove(member:NSWindowStyleMask)删除样式掩码.resizable.要再次启用它,您需要使用mutating方法insert(member:NSWindowStyleMask).请注意,它还将禁用该窗口的全屏模式:

删除禁用:

  1. window.styleMask.remove(.resizable)

插入以启用

  1. window.styleMask.insert(.resizable)

样品

  1. import Cocoa
  2. class ViewController: NSViewController {
  3. @IBOutlet weak var closable: NSButton!
  4. @IBOutlet weak var miniaturizable: NSButton!
  5. @IBOutlet weak var resizable: NSButton!
  6. @IBOutlet weak var titled: NSButton!
  7. lazy var window: NSWindow! = self.view.window
  8. func remove(_ member: NSWindowStyleMask) {
  9. window.styleMask.remove(member)
  10. }
  11. func insert(_ member: NSWindowStyleMask) {
  12. window.styleMask.insert(member)
  13. }
  14. @IBAction func toggle(_ sender: NSButton) {
  15. switch sender.state {
  16. case NSOnState:
  17. switch sender {
  18. case closable: insert(.closable)
  19. case miniaturizable: insert(.miniaturizable)
  20. case resizable: insert(.resizable)
  21. case closable: insert(.closable)
  22. case titled: insert(.titled)
  23. default: break
  24. }
  25. case NSOffState:
  26. switch sender {
  27. case closable: remove(.closable)
  28. case miniaturizable: remove(.miniaturizable)
  29. case resizable: remove(.resizable)
  30. case closable: remove(.closable)
  31. case titled: remove(.titled)
  32. default: break
  33. }
  34. default: break
  35. }
  36. }
  37. }

Sample Project

猜你在找的Swift相关文章