我尝试使用以下代码设置它的全局大小:
-(void)setOption {
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSDictionary *olddict = [defaults persistentDomainForName:@"com.apple.universalaccess"];
NSMutableDictionary *newdict = [olddict mutableCopy];
[newdict setObject:@4.0 forKey:@"mouseDriverCursorSize"];
[defaults setPersistentDomain:newdict forName:@"com.apple.universalaccess"];
[defaults synchronize];
NSLog(@"Cursor size set to %@", newdict);
}
我可以在NSLog中看到它更改了它,但我不知道如何重新启动/重置系统光标,以便将光标更改为指定的大小。
有人知道以编程方式更改其大小的更好方法吗?或者知道如何在默认值更改后重新启动系统光标吗?
EDIT(关于重复):我的问题很独特,因为我不能像其他主题中提供的答案那样使用appdescription来解决这个问题。此外,该主题创建于2013年,似乎已经过时。也许从那以后情况发生了一些变化。此外,Swift可能是解决这一问题的可行解决方案。谁知道呢?所有这些论点都表明,这不是一个重复的问题。
CGError state = CGSShowCursor(CGSDefaultConnection) ;
if (state != kCGErrorSuccess) NSLOG(@"error : %d",state);
也许用CGSShowCursor(CGSMainConnectionID())
试试
这也可能有助于:https://github.com/alexzielenski/Mousecape/blob/1d534b1e076b07a01b80364be23c88c8439028bc/Mousecape/mousecloak/NSCursor_Private.h
警告。此代码不是基于保存在首选项中的内容,因此请将其合并:
float cursorScale = 2;
cursorScale = MAX(1, MIN(cursorScale,4));
int connectionID = CGSMainConnectionID();
CGSSetCursorScale(connectionID, cursorScale);
以获得的大小
CGSGetCursorScale(connectionID, &cursorScale);
,
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSDictionary *olddict = [defaults persistentDomainForName:@"com.apple.universalaccess"];
NSMutableDictionary *newdict = [olddict mutableCopy];
[newdict setObject:@4.0 forKey:@"mouseDriverCursorSize"];
[defaults setPersistentDomain:newdict forName:@"com.apple.universalaccess"];
[defaults synchronize];
NSLog(@"Cursor size set to %@", newdict);
学分:Alex Zielenski