我的窗口类中有一个函数,它在移动滚轮时移动它的框架
-(void)scrollWheel:(NSEvent *)theEvent{
switch (theEvent.phase) {
// Whilst Scrolling
case NSEventPhaseChanged:
float newPos = [theEvent.window.contentView frame].origin.x + [theEvent scrollingDeltaX];
[theEvent.window.contentView setFrame: NSMakeRect(newPos, 0, 600, 600];
[self invalidateShadow];
[self display];
break;
}
}
这具有所需效果,框架完美左右移动。我无法解决两种无意识的行为。
窗口设置为[window setHasShadow:YES],我希望窗口透明,所以我最初将窗口设置为
[window setBackgroundColor:[NSColor colorWithCalibratedWhite:0.75 alpha:0.00]];
但是在这种情况下,屏幕上没有框架的部分的手势没有注册 - 一旦我将alpha转到
[window setBackgroundColor:[NSColor colorWithCalibratedWhite:0.75 alpha:0.05]];
确实收到了输入。但是,如果选择了这些选项中的任何一个,则setHasShadow默认接近框架而不是实际窗口 - 这是预期的行为吗?
希望有人可以提供一些见解。