[英]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.