【问题标题】:Adjust NSWindow height from bottom?从底部调整 NSWindow 高度?
【发布时间】:2011-06-26 19:33:21
【问题描述】:

假设我有一个名为mWindow 的窗口。为了增加高度,我会对框架这样做:

NSRect windowFrame = [mWindow frame]; 
windowFrame.size.height += 100.0f;
[mWindow setFrame:windowFrame];

但是,这会增加窗口顶部的高度,而不是底部。如何让它在底部而不是顶部添加更多窗口?

【问题讨论】:

    标签: objective-c cocoa frame nswindow


    【解决方案1】:

    由于坐标在 Cocoa 中的工作方式,您必须执行一些额外的步骤才能完成这项工作:

    NSRect windowFrame = [mWindow frame];
    windowFrame.size.height += 100;
    windowFrame.origin.y -= 100;
    [mWindow setFrame:windowFrame display:YES];
    

    或者,您可以使用 NSWindow 的 setFrameOrigin:setFrameTopLeftPoint: 方法。

    【讨论】:

    • 这就是我想要的。谢谢,我会接受你的回答。
    【解决方案2】:

    您始终可以相应地调整原点,即使其更高向下移动。

    【讨论】:

      【解决方案3】:

      我用这个sn-p。你要根据offset调整origin.y

      func change(height: CGFloat) {
        var frame = window.frame
        let offset = height - frame.size.height
        frame.size.height += offset
        frame.origin.y -= offset
      
        window.setFrame(rect, display: true)
      }
      

      【讨论】:

        猜你喜欢
        • 2023-03-28
        • 1970-01-01
        • 2022-01-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-23
        • 1970-01-01
        • 2011-10-18
        相关资源
        最近更新 更多