Я использовал этот код ...
static const CGFloat kSwipeGestureLeft = 1.0;
static const CGFloat kSwipeGestureRight = -1.0;
static const CGFloat kSwipeGestureUp = 1.0;
static const CGFloat kSwipeGestureDown = -1.0;
- (void)swipeWithEvent:(NSEvent *)event {
if ([event deltaX] == kSwipeGestureLeft) {
NSLog(@"LEFT SWIPE!");
}
else if ([event deltaX] == kSwipeGestureRight) {
NSLog(@"RIGHT SWIPE!");
}
else if ([event deltaY] == kSwipeGestureUp) {
NSLog(@"UP SWIPE!");
}
else if ([event deltaY] == kSwipeGestureDown) {
NSLog(@"DOWN SWIPE!");
}
else {
[super swipeWithEvent:event];
}
}
в NSView , который был отправлен обратно в Интерфейсный Разработчик , внутри окна , которое я сделал частично прозрачным через код . Однако , он ** работает только в непрозрачном окне, а не в прозрачном.
Почему?Как я могу это исправить?Если я не могу этого сделать, то все равно могу, например, сделать снимок всего экрана, а затем установить его (слегка затемненный) в качестве фона окна?
Я попытался создать подкласс NSWindow ** и поместить этов, но все еще не работал.
Код, который я использую, на самом деле не делает окно прозрачным, просто измените его цвет фона на прозрачный:
//Set up the window
[window setLevel:kCGNormalWindowLevel];
[window setOpaque:NO];
[window setStyleMask:0];
[window setBackgroundColor:[NSColor colorWithCalibratedWhite:0.0 alpha:0.3]];
[window setAlphaValue:0];
//Resize the window to fill the screen
[window
setFrame:[window frameRectForContentRect:[[window screen] frame]]
display:YES
animate:YES];
//Fade the window in
[window makeKeyAndOrderFront:self];
[[window animator] setAlphaValue:1.0];