2012-01-22 7 views
1

Я пишу приложение макинтоша и использовал этот код, чтобы скрыть ручку окна,Перетащите окно с 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.

-(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. Место контейнер, где вы хотите, в главном окне окна.
  4. Используйте этот фрагмент в XView, чтобы перетащить окно вокруг.
  5. Отрегулируйте поведение событий mouseDown и MouseUp.
+1

Я новичок в программировании приложений, так как я могу связать все? –