Пользовательские NSWindow setAlphaValue и makeKeyAndOrderFront

У меня есть пользовательское окно (класс прозрачного окна Мэтта Гемелла), и мне нужно изменить альфа-значение окна, чтобы добиться эффекта постепенного появления/исчезновения и выполнить «makeKeyAndOrderFront:».

Однако это не работает.

Что я сделал:

Я импортировал заголовок:

#import "TransparentWindow.h"

Затем попробовал:

[TransparentWindow setAlphaValue:0.5];

[TransparentWindow makeKeyAndOrderFront:self];

Это дало мне предупреждение о том, что «Прозрачное окно» может не реагировать ни на один из приведенных выше кодов. Поэтому я попытался внедрить setAlphaValue в прозрачное окно, добавив:

- (void)setAlphaValue:(CGFloat)windowAlpha
{
    [super setAlphaValue:windowAlpha];   
}

но 2 предупреждения не исчезнут. Как я могу это исправить?


person Pripyat    schedule 25.02.2010    source источник


Ответы (1)


[TransparentWindow setAlphaValue:0.5];
[TransparentWindow makeKeyAndOrderFront:self];

Это дало мне предупреждение о том, что прозрачное окно может не реагировать ни на один из приведенных выше кодов.

Это потому, что он (класс TransparentWindow) этого не делает.

Вам нужно отправить эти сообщения экземпляру TransparentWindow, а не классу TransparentWindow.

Поэтому я попытался реализовать setAlphaValue в прозрачном окне, добавив:

- (void)setAlphaValue:(CGFloat)windowAlpha
{
    [super setAlphaValue:windowAlpha];   
}

Если бы этого метода NSWindow не существовало, его вызов из метода в подклассе не решил бы эту проблему.

person Peter Hosey    schedule 26.02.2010