【问题标题】:fixing NSWindow size?修复 NSWindow 大小?
【发布时间】:2010-12-03 12:10:10
【问题描述】:

我们如何修复 NSWindow 的大小,以便用户不能通过鼠标拖动来调整它的大小,或者有没有办法让所有子视图窗口在用户更改窗口大小时调整大小,实际上是问题是当用户更改窗口大小时,子视图不会调整我想锁定窗口大小调整的大小吗?

【问题讨论】:

    标签: objective-c cocoa nswindow


    【解决方案1】:

    我可能错过了这里的重点(而且有点晚了),但你不能在窗口本身上设置“约束”选项吗?

    如果最小和最大尺寸相同,则会阻止调整大小。

    【讨论】:

      【解决方案2】:

      也许不是您想要的答案,但您可以通过禁用调整大小指示器(通过setShowsResizeIndicator)来防止调整大小,然后实现...

      - (NSSize)windowWillResize:(NSWindow *)sender toSize:(NSSize)frameSize
      

      ...NSWindowDelegate 委托方法,以便它简单地返回现有的窗口大小。

      奇怪的是没有“setCanResize:”方法,但是你去吧。

      【讨论】:

        【解决方案3】:

        以下假设您使用 Interface Builder 进行窗口布局:

        要调整子视图的大小,请转到 Size Inspector (command-3),然后为每个子视图设置其 Autoresizing 支柱和拉伸(单击矩形中的红线),直到预览动画执行您想要的操作。记住: (1) 如果一个父视图没有伸展,它的子视图也没有; (2) 如果您使用滚动条,如果内容可沿与滚动条相同的方向拉伸,它们将永远不会出现。

        如果您确实需要一个锁定的窗口,并且没有调整大小的控件,您可以在属性检查器(command-1)中取消选中这些选项。或者,更简单地说,为窗口创建一个 IBOutlet 并将其放入您的代码中:

        [self.theWindow setStyleMask:NSBorderlessWindowMask];
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2016-06-18
          • 2016-04-14
          • 1970-01-01
          • 2012-08-14
          • 2015-04-18
          • 2012-10-14
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多