簡體   English   中英

在擴展塢之外調整NSWindow的大小

[英]Resizing NSWindow beyond the dock

我正在嘗試將NSWindow調整為特定大小:

NSRect frame = [_window frame];

frame.size.width = 1024;
frame.size.height = 768 + 42; // add 42 for window frame

[_window setFrame: frame display: YES];
[_window center];

調整后的高度始終固定在Mac OS X應用程序底座上,因此在我的情況下,窗口高度內的視圖將不是768,而是680。是否有辦法迫使它在底座上調整大小?

通過實現重寫constrainFrameRect:toScreen的子類來修復此問題

- (NSRect)constrainFrameRect:(NSRect)frameRect toScreen:(NSScreen *)screen
{
    return frameRect;
}

從Mac開發者庫NSWindow類參考,constrainFrameRect:toScreen:

如果窗口可調整大小,並且窗口的高度大於屏幕高度,則矩形的高度也將調整為適合屏幕范圍。 矩形的寬度和水平位置不受影響。 您不需要自己調用此方法; 每當將標題為NSWindow的對象放置在屏幕上並更改其大小時,就會自動調用它(並且使用修改的框架來定位和設置窗口的大小)。 子類可以重寫此方法,以防止實例受到約束或以不同方式約束它們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM