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