2011-07-30 34 views

回答

2

添加觀察員爲你的父窗口的NSWindowDidResizeNotification通知,並相應地調整你的子窗口的框架。

+0

正確的,但你假設的提問做了一些他可能不知道的。 @Jonah Siegle:你需要把視圖放到一個子窗口中。見http://developer.apple.com/library/mac/documentation/Cocoa/Reference/ApplicationKit/Classes/NSWindow_Class/Reference/Reference.html#//apple_ref/occ/instm/NSWindow/addChildWindow:ordered: –

+0

我莫名其妙認爲他已經有了一個孩子窗口,但現在我再次讀到這個問題,在我看來,這是一個設置自動調整屏蔽的簡單情況。 – omz

2

使用

[myView setAutoResizingMask: NSViewMaxXMargin | NSViewMaxYMargin]; 

那應該保持鑑於它的父的右上角。如果您想要整個右側,請改用NSViewMaxXMargin | NSViewHeightSizeable | NSViewMinYMargin | NSViewMaxYMargin。它將固定在右側,頂部和底部將與超級視圖一起調整大小。現在把它放在正確的位置,它應該呆在那裏。

+1

你解釋的問題爲如何保持視圖右邊緣或窗口內右上角,但問題聽起來好像提問希望視圖是窗外,掛在右邊。 (另外,我覺得你有自動尺寸口罩向後設置位確定哪些部分可以調整大小,沒有這部分是固定的;它們表明彈簧,沒有支柱所以,你的例子,'MAXX | MaxY' =按倒在較低。左邊,而不是右上角。) –

+0

是的,這是我的解釋,因爲他寫的NSView是在NSWindow。而且您對NSViewXXX位是正確的。我習慣了錨,而這些恰恰相反。 –