2010-08-12 50 views
0

這是一個相當簡單的問題,我敢肯定,這不是要拼命,但問題是...NSPanel變換使用NSAffineTransform

我有一箇中心位置,然後在中心後,我需要做一個NSpanel在保持居中的X座標的同時在Y座標上移動窗口的變換。

是NSAffineTransform正確的方式來解決這個問題,沒有人有一個例子或想法,我需要做什麼,以移動該nspanel。再次感謝所有。

NSRect windowFrame = NSMakeRect(0, 0, 500, 100); 

    NSRect windowFrame2 = NSMakeRect(0, 100, 500, 150); 

    window = [[HUDWindow alloc] initWithContentRect:windowFrame 
              styleMask:NSBorderlessWindowMask 
              backing:NSBackingStoreBuffered 
               defer:NO]; 
    [window setLevel:kCGDesktopWindowLevel + 1]; 

    window2 = [[Mainbox alloc] initWithContentRect:windowFrame2 
              styleMask:NSBorderlessWindowMask 
              backing:NSBackingStoreBuffered 
               defer:NO]; 
    [window2 setLevel:kCGDesktopWindowLevel + 1]; 
    [window center]; 
    [window2 center]; 

^一段代碼,我在我的項目

回答

3

沒有,只是重置相框。

- (void)setFrame:(NSRect)windowFrame display:(BOOL)displayViews animate:(BOOL)performAnimation

+0

我還挺能看到你與此打算,但我真的不知道我怎麼會去重置框架。我已經放置了我的NSRect代碼和繪製窗口的類的分配代碼。 爲了使兩個窗口移動到某個Y座標,我必須包含哪些內容? 我感謝您的耐心。在製作桌面可可應用程序方面,我沒有像在製作iphone的東西那樣工作太多。 – Kyle 2010-08-12 16:13:12

+0

Rugluds:你沒有*實現*方法,你*調用*方法。只需發送'setFrame:display:animate:'消息到您的窗口,傳遞所需的幀和選項。窗口已經知道如何移動自己。看文檔:http: animate: – 2010-08-12 20:02:41

+0

Rugluds:對不起,我還不夠清楚。正如Peter所說的那樣,讓你保持當前的幀矩形,然後調整origin.y並通過NSWindow方法傳回,例如'[window2 setFrame:modrect display:YES animate:YES];' – 2010-08-12 20:11:44