在 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
我想制作一个极简主义的交互式屏幕保护程序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