在 cocoa 屏幕保护程序中禁用 mousemove 退出并构建 UI?

Disable exit on mousemove in cocoa screensaver and build UI?

我想制作一个极简主义的交互式屏幕保护程序UI。为此,我必须禁用或覆盖在 mousemoved 上退出屏幕保护程序的代码。我怎样才能做到这一点?

我还发现构建和测试这种屏幕保护程序很乏味。是否有可能只构建一个普通的 cocoa 应用程序并能够 运行 将其作为屏幕保护程序?

我已经搜索并测试了几个小时.. 但无济于事。我能找到的所有示例、教程都在普通屏保上。

啊是的。目的是将交互式 Windows-Screensaver 移植到 MacOS ;)

编辑/更新:

好的,我更近了一步。我以编程方式创建了一个 NSButton 并覆盖了 mousemoveevent。我还使用

使光标​​在 mousemoved 事件中可见

[NSCursor unhide]

下一步是弄清楚如何覆盖键事件,因为 keyUp 和 keyDown 将不起作用。

只需将这些方法添加到您的 ScreenSaverView 子类中:

// override these so mouse movement won't unsave screen
- (void) mouseEntered: (NSEvent *) theEvent;
{}

- (void) mouseExited: (NSEvent *) theEvent;
{}

// override this so modifier keys won't unsave screen
- (void) flagsChanged: (NSEvent *) theEvent;
{
    //gModifierFlags = [theEvent modifierFlags];
}

// override this so key downs won't unsave screen
- (void) keyDown: (NSEvent *) theEvent {
    // if you want a key event to wake the screensaver
    // have it call [super keyDown:theEvent];
} // keyDown