2010-08-20 144 views
1

我試圖編程創建一個NSSearchField;然而,我不知道如何找到標準NSSearchField的框架高度(在Interface Builder中的那些框架高度)。顯然,我可以簡單地從IB中的NSSearchField實體複製高度並用該高度調用NSMakeFrame,但是這種感覺駭客 - 當蘋果改變典型搜索領域的高度時會發生什麼?我寧願不將高度硬編碼到我的應用程序中。這更多的是「最佳實踐」問題,而不是「我根本無法解決它」。如何以編程方式創建NSSearchField?

謝謝!

回答

1

這種情況的魔術方法是

[mysearchfield sizeToFit]

這改變了幀的最小寬度和高度。我用Cocoa語言封裝了應用程序必須完全沒有IB構建它們的GUI,並且除了相同的情況(如小控制尺寸和NSComboBox)以及僅用於給圖標的寬度NSPopUpButton外,它幾乎適用於任何NSControl類。

也看看蘋果的人機界面Guid。像素大小是固定的,所以使用魔術像素常量沒有危險。

0

所以你是繼承NSSearchField?你想以編程的方式來創建它,但你並沒有真正清楚爲什麼。所以你需要框架來做你的自定義繪圖?我認爲,當你重寫繪圖代碼時,你應該試着看看哪些最好,換句話說就是嘗試高度,看看你的應用程序設計中哪個最適合或最適合。

+0

不是,不是繼承。我只是將它實例化並放置在NSToolbar中。我知道這可以在IB中完成,但是我手動編寫了這個特定的窗口(更像是一個練習,而不是其他任何內容。)我可以調用以下內容: NSSize searchFieldSize = NSMakeSize(400,50); [searchField setFrameSize:searchFieldSize]; 但這對我來說很髒。 – 2010-08-20 05:36:47