2010-08-14 43 views
1

在網上找不到任何關於這個問題的東西,並想知道SO上的任何人是否有解決方案。調整比其子視圖小的NSView的大小?

我有一個NSView有幾個子視圖,通過移除左側和右側的錨點來居中。當我用編程方式或鼠標調整視圖的大小時,它的寬度要小於子視圖的寬度:它將它們推離中心。有沒有人遇到過這個,你有解決方案嗎?

編輯:我希望能夠將視圖的大小調整爲零寬度。原因是,視圖實際上是分割視圖的一部分,我已經連接了一個按鈕來「摺疊」它。當它崩潰時,所有的子視圖都會偏離中心位置,並且在視圖大小調整時不會重新居中,從而無法將其摺疊。

+0

爲什麼要讓父視圖小於子視圖?只要把它們全都包括在內,你就會好起來的。 – 2010-08-14 20:32:04

+0

我已經更新了這個問題來解釋我爲什麼要這樣做。 – 2010-08-15 00:05:31

回答

1

我已經解決了我的問題,並認爲我會分享任何人在未來遇到此問題。

在界面生成器中使用自動調整選項或視圖佈局時沒有任何玩法似乎阻止我的子視圖偏離中心位置。我還是設法找到這個鏈接here從這個頁面,建議:

泉和支柱,爲目前 實現的,是真的沒有好 什麼,但保持一個或 視圖的兩面「卡住「 最近的邊緣。任何形式的集中 行爲,在多個視圖之間的獲得/丟失區域 的劃分等必須是手動完成的 。

在此基礎上我不顧我的觀點的setFrame:方法和使用他們的setFrame:手動的方法奠定了我的子視圖。這工作很好,給我我要找的結果。

+1

不要在-drawRect中執行此操作。 Override -setFrame:和/或-setFrameSize:,調用super,然後調用你的tile例程。 -drawRect:意味着快速和輕量級,而且你不打算在其中執行子視圖平鋪。 – 2011-11-07 13:20:15

+0

只需拉起相關的代碼,我確實按照建議覆蓋了setFrame。自發布此答案以來必須改變它。改變了我的回答,以反映更好的建議。 – 2011-11-07 21:30:18

0

使用NSSplitView有同樣的問題,在這裏調整一個子視圖小於子視圖子視圖是有意義的,例如。上部子視圖中有小圖表,下部子視圖中有rss閱讀器。

如果你只想在下面的子視圖中顯示rss閱讀器,你可以「隱藏」上面的子視圖,但是在調整上面的子視圖的大小後,NSImageView的佈局和開始時不一樣。檢查此筆尖/ xCode Project和以下screenshot以查看此行爲。

只有workaroung是重寫resize函數來停止變小。

相關問題