我想制作一个具有简约 UI 的交互式屏幕保护程序。为此,我必须禁用或覆盖鼠标移动时退出屏幕保护程序的代码。我怎样才能做到这一点?
而且我发现构建和测试这种屏幕保护程序很乏味。是否有可能只构建一个普通的 cocoa 应用程序并能够将其作为屏幕保护程序运行?
我现在已经搜索和测试了几个小时..但没有结果。我能找到的所有示例、教程都在普通屏幕保护程序上。
啊是的。目的是将交互式 Windows 屏幕保护程序移植到 MacOS ;)
编辑/更新:
好吧,我又近了一步。我以编程方式创建了一个 NSButton 并覆盖了 mousemoveevent。我还使用
使光标在 mousemoved 事件中可见[NSCursor 取消隐藏]
下一步是弄清楚如何覆盖按键事件,因为 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
关于objective-c - 在 cocoa 屏幕保护程序中禁用鼠标移动退出并构建 UI?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28344697/