窗口可调整大小 - kAXGrowAreaAttribute 始终返回 NULL
在我的应用程序中,我想检查其他应用程序的窗口是否可以调整大小。
我正在使用辅助功能 API 来测试窗口是否具有 kAXGrowAreaAttribute 属性(如果 NULL 不可调整大小),正如 Peter Hosey 在 这个问题。
问题是 kAXGrowAreaAttribute 返回的值始终为 NULL,无论窗口大小是否可调整都无关紧要。注意:要检索值,我正在使用 Apple UIElementInspector 示例(我也尝试直接使用 AXUIElementCopyAttributeValue 获得相同的结果)。
有什么想法吗?我在 Lion 工作,这可能是问题所在吗?提前致谢。
编辑:
使用 UIElementUtilities 类方法我找到了一个解决方案。
只需将方法
+ (BOOL)canSetAttribute:(NSString *)attributeName ofUIElement:(AXUIElementRef)element
与 kAXSizeAttribute 和聚焦窗口结合使用即可。它返回 YES 或 NO 取决于窗口是否足够大......
In my app I want to check if windows from others apps are resizable.
I´m using the accessibility API to test if the window has the kAXGrowAreaAttribute attribute (if NULL is not resizable) as Peter Hosey answered in this question.
The problem is that the kAXGrowAreaAttribute returned value is always NULL it doesn´t matter if the window is resizable or not. Note: to retrieve the value I´m using the UIElementUtilities class from the Apple UIElementInspector example (I also have tried using AXUIElementCopyAttributeValue directly with the same result).
Any idea? I´m working in Lion, could be this the problem? Thanks in advance.
EDITED:
Playing around with the UIElementUtilities class methods I found a solution.
Just use the method
+ (BOOL)canSetAttribute:(NSString *)attributeName ofUIElement:(AXUIElementRef)element
with the kAXSizeAttribute and the focused window. It returns YES or NO depending if the window is sizable or not...
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这可能是因为你在 Lion 中。尺寸盒被杀死;可调整大小的窗口现在可以在每个边缘调整大小。
是的,测试尺寸是否可以改变可能是正确的方法。它似乎对我在雪豹中有用。
It probably is because you're in Lion. The size box was killed off; resizable windows are resizable at every edge now.
And yes, testing whether the size can be changed is probably the right way. It seems to work for me in Snow Leopard.
Swift 5 版本:
Swift 5 version: