【问题标题】:Window animates width but not height窗口动画宽度但不是高度
【发布时间】:2017-09-29 16:46:20
【问题描述】:

我有一个带有 NSTabViewController 的首选项窗口,它连接到用于选择选项卡的工具栏。我希望窗口可以调整大小,并在切换选项卡以适应新选项卡的大小时根据需要调整大小。

我将NSTabViewController 子类化为以下重载:

override var selectedTabViewItemIndex: Int
{
  didSet
  {
    guard let view = tabViewItems[selectedTabViewItemIndex].view,
          let window = view.window
    else { return }

    let minSize = view.fittingSize
    let contentRect = NSWindow.contentRect(forFrameRect: window.frame,
                                           styleMask: window.styleMask)
    let minRect = NSRect(origin: contentRect.origin, size: minSize)
    let newRect = minRect.union(contentRect)
    let newFrame = NSWindow.frameRect(forContentRect: newRect,
                                      styleMask: window.styleMask)

    window.animator().setFrame(newFrame, display: true, animate: true)
  }
}

结果是它动画水平调整大小,最后它突然也垂直调整大小。如何让它同时为两个方向设置动画?

【问题讨论】:

    标签: swift macos cocoa


    【解决方案1】:

    您对任何选项卡都有高度限制吗?这些可能会阻止窗口变大(即使在屏幕外)。

    【讨论】:

    • 选项卡上没有明确的高度限制,只是在子视图和它们的顶部/底部空间到超级视图。宽度也是如此。
    猜你喜欢
    • 2012-09-02
    • 1970-01-01
    • 1970-01-01
    • 2011-09-09
    • 2012-07-12
    • 1970-01-01
    • 1970-01-01
    • 2011-07-08
    • 2011-10-20
    相关资源
    最近更新 更多