2012-01-22 83 views
1

我寫一個Mac應用程序,並使用該代碼隱藏窗口句柄,用NSImage拖動窗口作爲句柄?

[self.window setStyleMask:NSBorderlessWindowMask]; 

嗯,這是偉大的,但我仍然需要一個手柄周圍的窗口移動,所以是有移動的方式圍繞窗口從另一個對象,如NSImage,就像窗口句柄?

我的圖像的代碼是在.H,

@interface WOWAppDelegate : NSObject <NSApplicationDelegate> { 
     NSWindow *window; 
    IBOutlet NSImageView* winView; 

} 

,並在.m文件,

- (void)awakeFromNib { 

    NSString *inFilePathwin = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"win.png"]; 
    NSImage *winImage = [[[NSImage alloc] initWithContentsOfFile:inFilePathwin] autorelease]; 
    [winView setImage:winImage]; 

} 

所以圖像工作,並顯示讓我怎麼鏈接功能?

回答

4

在NSView子視圖上掛鉤mouseDragged事件。

-(void)mouseDragged:(NSEvent *)theEvent 
{  
CGFloat deltax = [theEvent deltaX]; 
CGFloat deltay = [theEvent deltaY]; 

NSRect frame = [[self window] frame]; 
frame.origin.x += deltax; 
frame.origin.y -= deltay; 

[[self window] setFrameOrigin:frame.origin];  
} 

所以

  1. 子類的NSView在這個視圖容器的實例XVIEW
  2. 地方你的手柄的形象。
  3. 在Windows主視圖中將容器放在所需位置。
  4. 在XView中使用此代碼段可以拖動窗口。
  5. 用mouseDown和MouseUp事件調整行爲。
+1

我是新來的應用程序編程,所以我如何鏈接一切? –