PLG*_*PLG 9 macos cocoa accessibility core-graphics objective-c
我正在尝试操作 macOS 的窗口。我找到了以下网址:
这些链接允许通过 macOS 的辅助功能 API 访问应用程序的各种窗口;更具体地说,他们使用该AXUIElementRef
元素来重新定位窗口。
在为 macOS 创建应用程序时,我成功使用了以下代码...
@implementation CustomWindow
- (id)initWithContentRect:(NSRect)contentRect styleMask:(NSWindowStyleMask)windowStyle backing:(NSBackingStoreType)bufferingType defer:(BOOL)deferCreation
{
self = [super initWithContentRect:contentRect styleMask:windowStyle backing:bufferingType defer:deferCreation];
if(self)
{
[self setLevel:kCGDesktopWindowLevel - 1];
[self setCollectionBehavior:
(NSWindowCollectionBehaviorCanJoinAllSpaces |
NSWindowCollectionBehaviorStationary |
NSWindowCollectionBehaviorIgnoresCycle)];
}
return self;
}
// ...
@end
Run Code Online (Sandbox Code Playgroud)
... 在屏幕的桌面级别放置一个窗口。我正在寻找的是一种通过自定义 Windows 管理器应用程序操作相同窗口级别属性等的方法。换句话说,我想编写一个窗口管理器,可以在屏幕上操纵其他应用程序的窗口级别。
是,我在我的发现中纠正了这是不可能的吗?可以通过 Core Graphics 完成吗?
另外,我想改变重点和重点的应用程序,但我认为这是可以做到的。
您无法真正操纵CGWindowLevel
窗口的 的 (kCGNormalWindowLevel
例如,所有普通窗口都是 ),但如果您希望更改普通级别窗口相对于其他窗口的顺序,那么您可能正在寻找 Accessibility 的kAXRaiseAction
,您可以请参阅此处的实际操作。
如果您只是想查看系统上的所有窗口是什么(以及它们的CGWindowLevel
s),那么CGWindowListCopyWindowInfo
将为您提供该信息。
归档时间: |
|
查看次数: |
751 次 |
最近记录: |