【问题标题】:Store window size for sheet view controller存储工作表视图控制器的窗口大小
【发布时间】:2016-08-16 07:51:56
【问题描述】:

有没有办法在用户默认值中存储窗口大小,以便视图控制器显示为表格?我正在使用故事板并使用类型表进行 segue。

【问题讨论】:

  • 尴尬的问题:为什么...?但简而言之,您可以毫无问题地将此类信息存储在NSUserDefaults
  • 工作表可调整大小并具有文本视图。这不是主要的,只是为了可用性。
  • 为什么不能在运行时读取窗口的大小? 为什么需要永久保存?

标签: swift cocoa nswindow nsviewcontroller


【解决方案1】:

我的研究结果


class SheetController: NSViewController, NSWindowDelegate {

  // MARK: - Interface Builder

  @IBInspectable var autosave: String?

  // MARK: - NSViewController

  override func viewWillAppear() {
    super.viewWillAppear()

    guard let window = self.view.window, let saveName = autosave else {
      return
    }

    window.delegate = self
    // restore window size
    window.setFrameUsingName(saveName)

  }

  // MARK: - NSWindowDelegate

  func windowDidEndLiveResize(notification: NSNotification) {
    guard let saveName = autosave else {
      return
    }
    // save new window size
    self.view.window?.saveFrameUsingName(saveName)
  }

}

【讨论】:

  • 谢谢。有点烦人,这不是自动内置的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多