Lou*_*s M 5 macos cocoa applescript mission-control
我希望能够随时知道用户当前在 macOS 10.13 上以编程方式使用哪个任务控制工作区。在搜索过程中我找不到任何有效的答案。任何语言都可以,任何工作区标识符都适合我(uuid、工作区编号...)
感谢您的帮助!
小智 8
Build Settings
并将该文件夹添加到User Header Search Paths
然后你可以这样做:
#import "AppDelegate.h"
#import "CGSInternal/CGSSpace.h"
@implementation AppDelegate
typedef int CGSConnection;
extern CGSConnection _CGSDefaultConnection(void);
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
CGSSpaceID activeSpace = CGSGetActiveSpace(_CGSDefaultConnection());
NSLog(@"activeSpace: %zu", activeSpace);
CFArrayRef spaceArray = CGSCopySpaces(_CGSDefaultConnection(), kCGSAllSpacesMask);
NSLog(@"allSpaces: %@", spaceArray);
}
@end
Run Code Online (Sandbox Code Playgroud)
看起来这需要未记录的 API 调用。
https://github.com/asmagill/hs._asm.undocumented.spaces/blob/master/CGSSpace.h
和
CG_EXTERN CGSSpaceID CGSGetActiveSpace(CGSConnectionID cid);
可能会做你想做的事,但这段代码已经 3 年没有被触及了,所以系统/api 可能已经迁移,并且使用未记录的 API 的所有问题都适用。
在项目中找到了这个https://github.com/asmagill/hs._asm.undocumented.spaces
尚未使用或验证过。
归档时间: |
|
查看次数: |
2255 次 |
最近记录: |