在我的应用程序中,我想检查其他应用程序的窗口是否可调整大小。
我正在使用可访问性API来测试窗口是否具有kAXGrowAreaAttribute属性(如果NULL不可调整大小),正如Peter Hosey在this question中回答的。
问题是,kAXGrowAreaAttribute返回的值始终为NULL,与窗口是否可调整大小无关。注意:使用Apple UIElementInspector示例中的UIElementUtilities类检索值I´m(我也尝试过直接使用AXUIElementCopyAttributeValue获得相同的结果)。
有什么想法吗?我在Lion公司工作,可能是这个问题吗?预先感谢。
编辑:
使用UIElementUtilities类方法,我找到了解决方案。
只需使用方法
+ (BOOL)canSetAttribute:(NSString *)attributeName ofUIElement:(AXUIElementRef)element
带有kAXSizeAttribute和聚焦窗口。根据窗口是否可调整大小,它返回“是”或“否”。
可能是因为您在Lion。大小盒子被杀死了。可调整大小的窗口现在可以在每个边缘调整大小。
是的,测试是否可以更改大小可能是正确的方法。在Snow Leopard中,这似乎对我有用。
Swift 5版本:
func isResizable(axElement: AXUIElement) -> Bool {
var resizable: DarwinBoolean = true
let status = AXUIElementIsAttributeSettable(axElement, kAXSizeAttribute as CFString, &resizable)
if status != .success {
print("unable to determine if window is resizable")
}
return resizable.boolValue
}