相关疑难解决方法(0)

keyDown没有被调用

我有一个名为SurfaceView的自定义NSView.它是NSWindow的contentView,它处理鼠标点击和绘图等基本事件.但是不管我做什么都没关系,它不处理keyDown函数.我已经覆盖了acceptFirstResponder但没有任何反应.

如果重要,我使用自定义NSEvent循环运行应用程序,如下所示:

NSDictionary* info = [[NSBundle mainBundle] infoDictionary];
NSString* mainNibName = [info objectForKey:@"NSMainNibFile"];

NSApplication* app = [NSApplication sharedApplication];
NSNib* mainNib = [[NSNib alloc] initWithNibNamed:mainNibName bundle:[NSBundle mainBundle]];
[mainNib instantiateNibWithOwner:app topLevelObjects:nil];

[app finishLaunching];

while(true)
{   
    NSEvent* event = [app nextEventMatchingMask:NSAnyEventMask untilDate:[NSDate date] inMode:NSDefaultRunLoopMode dequeue:YES];
    [app sendEvent:event];

    // Some code is execute here every frame to do some tasks...

    usleep(5000);
}
Run Code Online (Sandbox Code Playgroud)

这是SurfaceView代码:

@interface SurfaceView : NSView
{
    Panel* panel;
}

@property (nonatomic) Panel* panel;

- (void)drawRect:(NSRect)dirtyRect;
- (BOOL)isFlipped;
- (void)mouseDown:(NSEvent *)theEvent;
- (void)mouseDragged:(NSEvent …
Run Code Online (Sandbox Code Playgroud)

keyboard cocoa objective-c keydown nswindow

6
推荐指数
1
解决办法
6395
查看次数

主要的Xcode 7 Sprite Kit Atlas Bug

所以今天我决定开始在El Capitan和iOS 9上测试我的游戏.这是一个大型项目,我在业余时间工作了将近2年.所以我将我的代码移植到Swift 2.0,点击运行按钮并祈祷Apple没有破坏Sprite Kit(就像他们过去一样:,,,,甚至没有让我开始形状节点...).所以我的游戏启动了,你知道什么 - 我的所有节点都被错误定位,以及我的动画纹理.其他一些小错误,例如抽奖计数没有显示但是那些很小,希望它们也会被修复.

所以我开始调试,最终我发现大部分问题都与我的地图集中的节点没有正确定位有关.所以我使用一个节点创建了一个如下所示的示例项目.您可以在图片中看到我将节点锚点设置为(0,0)并将位置设置为(0,0).场景的锚点也是(0,0).我打印出所有这些值以验证它们是否正确.

在此输入图像描述

您还可以看到它在编辑器中正确绘制.然而,当我启动游戏时,我得到以下内容:

在此输入图像描述

您可以看到节点绘制不正确.它的位置是(0,0)但是它被绘制了偏移量.并且没有我的场景没有缩放,它匹配视图的大小,并在ResizeFill上设置.

我在El Capitan和iOS 9上都遇到了这个问题.有趣的是,图像包含透明像素越多,问题就越明显.从编辑器屏幕截图中可以看出,我的图像包含许多透明像素,因为我想清楚地显示错误.如果我使用了较少透明的像素,则节点的偏移量会减少.

如果我不使用图集,则正确绘制节点,如下所示.但是我显然想要使用地图集,以便我可以批量渲染我的节点.

在此输入图像描述

我已经在Radar上提交了这个bug.有没有人找到这个问题的解决方法,不涉及不使用地图集?

macos ios sprite-kit ios9 xcode7

5
推荐指数
1
解决办法
1025
查看次数

标签 统计

cocoa ×1

ios ×1

ios9 ×1

keyboard ×1

keydown ×1

macos ×1

nswindow ×1

objective-c ×1

sprite-kit ×1

xcode7 ×1