【问题标题】:Cocoa auto-resizable window可可自动调整大小的窗口
【发布时间】:2011-06-17 09:11:00
【问题描述】:

当用户单击选项卡时,如何使带有 NSTabView 的 NSWindow 平滑调整大小?我希望它喜欢“系统偏好设置”应用程序:窗口根据内容改变其大小。

【问题讨论】:

    标签: objective-c cocoa macos interface-builder


    【解决方案1】:

    使用 NSWindow 的 setFrame:animated: 方法。如果要缩小窗口大小,请确保将原点的 y 坐标减小与增加窗口大小相同的量。要同时调整窗口中视图的大小,请确保正确设置它们的自动调整大小属性。

    NSWindow *window;
    CGFloat widthChange, heightChange;
    
    NSRect frame = [window frame];
    frame.size.width += widthChange;
    frame.size.height += heightChange;
    frame.origin.y -= heightChange;
    [window setFrame:frame animated:YES];
    

    【讨论】:

    • 这不能在 Interface Builder 中使用百分比来完成吗?我好像记得不久前的,但可能是错的。
    • 我相信 IB 将有关窗口框架的信息存储为百分比,以便它在不同大小的屏幕上看起来不错,但是当您更改选项卡时,无法让它改变窗口的大小。您必须以编程方式进行。
    猜你喜欢
    • 1970-01-01
    • 2017-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多