macOS / Cocoa / SwiftUI - 如何判断用户是否更喜欢左键单击作为二次单击?

macOS / Cocoa / SwiftUI - How can I tell if the user prefers left-click as secondary-click?

macOS 默认假设用户的鼠标在他们的右手,所以他们的二次点击是 "right-click"。有些用户用左手握住鼠标,所以他们的二次点击是 "left-click".

我想在对话框中写一些文本来描述是执行一次单击还是二次单击。但是,我认为术语 "secondary-click" 不够普遍,大多数用户都无法理解。 如何检查系统对鼠标惯用手的偏好, 以便我可以根据用户的偏好换出对话框的文本?

我使用的框架是 SwiftUI 和 Cocoa,但如果这是解决此问题的唯一方法,我愿意使用其他框架。

可以读取用户默认com.apple.mouse.swapLeftRightButton

从终端,运行:

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

如果键不存在,则不交换按钮(即主按钮是 "Left")。

来自 Cocoa,可以使用 NSUserDefaults:

阅读

Swift

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

Objective-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"));