在我目前正在研究的程序上,我想鎖定主窗口的長寬比,以確保一些視覺元素保持相稱。NSWindow setAspectRatio是否包含頂欄的大小?
我設法做在AppDelegate類下面得到這個工作:
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
[window setAspectRatio:NSMakeSize(1.48, 1.0)];
}
當用戶拖動窗口,寬高比被鎖定爲我所期望的,但有一個問題。我已經指定了一個窗口大小爲IB的592x400,這符合縱橫比,但是當我在應用程序運行時第一次嘗試調整窗口大小時,窗口類型會快速捕捉到新的比率。我猜測setAspectRatio:可能會進入窗口頂部的欄中,從而搞亂了計算。
有沒有人知道一個體面的解決方法這個問題,或任何其他的方法?
另外,是否有一種方法來調整窗口的大小,以尊重由setAspectRatio設置的縱橫比?
之前,改變大小編程我一直在使用的時候:
[window setContentSize:NSMakeSize(592, 400)];
,我有測試,以確認它忽略指定縱橫比,正如所預料的!
謝謝!
非常感謝,我甚至沒有注意到setContentAspectRatio:當我檢查文檔!它不會放在'sizing windows'標題下的setAspectRatio:但在'sizing contents'標題下。只是改變了它在我的程序,它工作正常! – tom1990