macOS默认情况下假设用户的鼠标在其右手手中,因此其第二次单击为“右键单击”。一些用户的左手握住鼠标,因此其第二单击为“左键单击”。

我想在对话框中写一些文字来描述是执行一次单击还是二次单击。但是,我认为“二次点击”一词的通用性不足以使大多数用户理解。如何检查系统偏好设置的鼠标惯用性,以便可以根据用户的偏好替换对话框的文本?

我正在使用的框架是SwiftUI和Cocoa,但是如果这是解决此问题的唯一方法,我将开放使用其他框架。

最佳答案

您可以阅读用户默认的com.apple.mouse.swapLeftRightButton

从终端运行:

defaults -currentHost read -globalDomain com.apple.mouse.swapLeftRightButton


如果键不存在,则按钮不会被交换(即主按钮为“左”)。

在可可中,可以使用NSUserDefaults进行读取:

迅速

UserDefaults.standard.bool(forKey: "com.apple.mouse.swapLeftRightButton")


目标C

NSString* const SwapLeftRightButtonKey = @"com.apple.mouse.swapLeftRightButton";
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
NSNumber *swap = [userDefaults objectForKey:SwapLeftRightButtonKey];
NSLog(@"com.apple.mouse.swapLeftRightButton == %@",
            ([swap boolValue] ? @"YES" : @"NO"));

10-07 21:31