我有一個窗口應用程序,在屏幕上有一些複選框。MAC可可 - 以編程方式設置窗口大小
我使用NSUserDefaults
不僅存儲複選框的狀態,而且還存儲主窗口的寬度,高度和位置(x/y)。
我的問題是要找到正確的事件來讀取和設置窗口屬性。
目前我做這件事:
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
// read preferences
UserPreferences *userPrefs = [[UserPreferences alloc] init];
NSRect oldFrame = [window frame];
if([userPrefs MainWindowWidth] > 0)
oldFrame.size.width = [userPrefs MainWindowWidth];
if([userPrefs MainWindowHeight] > 0)
oldFrame.size.height = [userPrefs MainWindowHeight];
if([userPrefs MainWindowTop] > 0)
oldFrame.origin.y = [userPrefs MainWindowTop];
if([userPrefs MainWindowLeft] > 0)
oldFrame.origin.x = [userPrefs MainWindowLeft];
// set windows properties
[window setFrame:oldFrame display:YES animate:NO];
}
它的工作原理,但畫面首先顯示的默認大小,然後使視覺改變爲保存大小打嗝。這告訴我,在事件鏈中設置這些參數太晚了。
我也嘗試了awakefromnib,但這似乎太早,因爲設置寬度和高度被忽略。
在屏幕上顯示之前,哪個事件是正確的插入此代碼以重置窗口的權限?
任何意見,將不勝感激。每一個開始都很艱難。
謝謝。
感謝您的回覆。我無法找到「開始時顯示窗口」,但有「可見於發佈」。這是你指的是什麼? – Mozzak
所以我試圖禁用「可見在啓動」,並顯示「applicationDidFinishLaunching」窗口。它仍然是閃爍的。它似乎首先加載窗口的默認大小,然後新的大小後。任何其他想法? – Mozzak