2012-02-12 66 views
3

我想縮小NSWindow,通過改變框架的高度並從窗口頂部脫落。 我想:Rezize NSWindow從頂部

NSRect frame = [mainWindow frame]; 
frame.origin.y += 71; 
frame.size.height -= 71; 
[mainWindow setFrame:frame display:YES animate:YES]; 

但它從底部,而不是頂部做出的窗口小。

回答

2

在OS X上的可可中,原點位於屏幕的左下角。這意味着增加窗口的y位置會將其移動到屏幕上。既然你想改變你的窗口的頂部,你希望底角保持原位,這意味着你不應該改變你的原點。簡單地改變高度會導致窗口從頂部縮小。

NSRect frame = [mainWindow frame]; 
frame.size.height -= 71; 
[mainWindow setFrame:frame display:YES animate:YES]; 
+0

這並不完美。幾乎窗戶從底部收縮,然後向下移動。 – fefwfefefwfwe 2012-02-12 05:34:16

+0

這很有趣。它對我來說工作得很好。你幾乎同時在做其他事情嗎? – ughoavgfhw 2012-02-12 05:47:37

+0

沒有那個......但是底部消失了,我想要頂部消失的地方。 – fefwfefefwfwe 2012-02-12 05:53:36