3

我尝试使用以下代码设置它的全局大小:

-(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 中看到它更改了它,但我不知道如何重新启动/重置系统光标以使光标更改为指定的大小。

有谁知道以编程方式更改其大小的更好方法,或者在默认值更改后如何重新启动系统光标?

编辑(关于重复):我的问题是独一无二的,因为我不能像其他主题中提供的答案那样使用 applescript 来解决这个问题。此外,该主题是在 2013 年创建的,似乎已经过时了。也许从那以后事情发生了一些变化。也可能 Swift 是解决这个问题的可行解决方案。谁知道?所有这些论点都清楚地表明这不是一个重复的问题。

4

2 回答 2

0

警告。此代码不基于首选项中保存的内容,因此将其组合起来:

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

学分:亚历克斯·齐伦斯基

于 2016-10-12T17:01:09.130 回答
0
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

于 2016-03-29T12:31:31.503 回答