objective-c - 在 cocoa 屏幕保护程序中禁用鼠标移动退出并构建 UI?

标签 objective-c macos cocoa

我想制作一个具有简约 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/

相关文章:

ios - 在 iOS 中从 URL 加载 UIImage

objective-c - Command-Click 从 Objective-C 源到 Swift 打开 MyProject-Swift.h 文件

iphone - 如何在iPhone上播放音调

Git总是提示 "Are you sure you want to continue connecting (yes/no/[fingerprint])?"

objective-c - NSTableView 和退格事件(删除行)-fieldeditor/firsterresponder?

ios - 无法在 iOS 中将统一的 CNContact 添加到 CNGroup

python - 如何在 Mac OSX 上将 Python 的默认版本设置为 3.x 与 2.7?

java - MacOS 上的 NetBeans 12.1 安装错误

cocoa - 无声音播放时核心音频 CPU 使用率高

objective-c - 评估 NSArray 上的 NSPredicate(无过滤)