2014-02-18 187 views
2

我是使用Cocoa開發Mac應用程序的新手。我很困惑,應該是窗口/視圖的大小。就像在iOS應用程序中一樣,我們有適合小iPod和最新iPod的尺寸。但如何在Cocoa App中設置大小。Mac應用程序的窗口大小

另外我想將部署目標設置爲不支持AutoLayout的OS X 10.6。

那麼如何調整適合每個桌面的窗口?

+0

窗口大小和部署目標是兩個不同的主題。 –

回答

1

不要想像爲iOS設備編程太多。在OS X上,用戶可以在屏幕上相鄰顯示多個窗口。他可能會根據您的應用所具有的任務來執行此操作。

你將不得不設計你的窗口,以便所有物體都適合在裏面。基於此,您可以設置最小尺寸以及最大尺寸。考慮最小的屏幕分辨率約爲1200 x 700,因此您的最小尺寸不應超過此尺寸。

在自動佈局之前,存在一個「彈簧& struts」的方式來定義對象如何調整大小或調整窗口大小的位置。

我建議您開始在aper上繪製您的應用程序或使用圖形工具,然後查看需要多少空間。如果需要更多空間而不是最小分辨率,則必須開始使用滾動視圖,拆分視圖或類似的界面,以使界面以不同的窗口大小工作。

大量有用的信息可以從OS X HIG中獲取。

5

有幾件事情你需要在OS X下

首先用於顯示窗口大小時要考慮的,還有的顯示區域的大小。你可以使用

NSRect frame = [[NSScreen mainScreen] frame]; 

但這有點簡單,因爲用戶可能會顯示Dock,並且幾乎總是顯示菜單欄。因此,確定桌面最大顯示區域的更好方法是:

NSRect frame = [[NSScreen mainScreen] visibleFrame]; 

它尊重菜單欄和Dock。

正如其他人指出的,這個矩形很少是窗戶最理想的尺寸。也要明白,這個矩形只是一個起點,因爲你的用戶可能有多個顯示器,並且它們可以顯示一個窗口的總面積。但是當顯示一個新窗口時,你總是在這個矩形內開始。看看NSScreen的文件來確定這一點;上述方法將爲您的理解提供一個跳板。

我不知道你打算如何創建和使用你的窗口,但除了最簡單的應用程序之外,你可能會使用它的一個子類NSWindowController。如果是這樣,它將是您窗口的代表。所以有,你會需要它來實現的重要窗口委託方法,它是這樣的:

- (NSRect)windowWillUseStandardFrame:(NSWindow *)window defaultFrame:(NSRect)newFrame 

這是你確定你的窗口框架的「標準」位置和大小。當窗口縮小到所謂的「標準狀態」(相對於用戶的尺寸,「用戶狀態」)時,它由窗口調用。換句話說,它是最適合您窗口內容的矩形,但要記住描述您可以在其中顯示它的「安全」區域的矩形。不幸的是,我無法告訴你如何編碼,因爲它完全取決於你在窗口中顯示的內容。

因此,您可以看到「正確」的定義與iOS中的定義完全不同。祝願你事業順利。

相關問題