2010-08-12 3 views
0

Это довольно простой вопрос, и я уверен, что это не сложно, но вопрос ...NSPanel преобразования с использованием NSAffineTransform

У меня есть NSpanel, которая центрируется, а затем после центрирования мне нужно сделать преобразование для перемещения окна вниз по координате Y при сохранении центрированной координаты X.

Является ли 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

+0

Rugluds: вы не * реализуете * этот метод, вы * вызываете * этот метод. Просто отправьте сообщение «setFrame: display: animate:» в ваше окно, передав нужный кадр и параметры. Окно уже знает, как двигаться. См. Документы: http://developer.apple.com/mac/library/documentation/Cocoa/Reference/ApplicationKit/Classes/NSWindow_Class/Reference/Reference.html#//apple_ref/occ/instm/NSWindow/setFrame:display: aimate: –

+0

Rugluds: Извините, я не был достаточно ясным. По мере того как Питер говорит, возьмите свой текущий прямоугольник кадра, а затем отредактируйте origin.y и передайте его обратно через этот метод NSWindow, например, '[window2 setFrame: modrect display: YES animate: YES];' –

Смежные вопросы