在我的应用中,我想检查来自其他应用的窗口是否可以调整大小。
我正在使用辅助功能API来测试窗口是否具有kAXGrowAreaAttribute属性(如果NULL不可调整大小),正如Peter Hosey在this question中回答的那样。
问题是kAXGrowAreaAttribute返回的值总是为NULL,如果窗口可调整大小,则无关紧要。注意:要从Apple UIElementInspector示例中使用UIElementUtilities类检索值(我也尝试使用AXUIElementCopyAttributeValue直接使用相同的结果)。
有什么想法吗?我在Lion工作,可能是这个问题吗?提前谢谢。
已编辑:
使用UIElementUtilities类方法我找到了一个解决方案。
只需使用方法
即可 + (BOOL)canSetAttribute:(NSString *)attributeName ofUIElement:(AXUIElementRef)element
使用kAXSizeAttribute和焦点窗口。它返回YES或NO,具体取决于窗口是否大小......
答案 0 :(得分:2)
这可能是因为你在狮子座。大小的盒子被杀掉了;可调整大小的窗口现在可以在每个边缘调整大小。
是的,测试尺寸是否可以改变可能是正确的方法。它似乎对Snow Leopard有用。
答案 1 :(得分:0)
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
}