可调整窗口大小-kAXGrowAreaAttribute始终返回NULL

问题描述 投票:2回答:2

在我的应用程序中,我想检查其他应用程序的窗口是否可调整大小。

我正在使用可访问性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和聚焦窗口。根据窗口是否可调整大小,它返回“是”或“否”。

cocoa window resizable accessibility-api
2个回答
2
投票

可能是因为您在Lion。大小盒子被杀死了。可调整大小的窗口现在可以在每个边缘调整大小。

是的,测试是否可以更改大小可能是正确的方法。在Snow Leopard中,这似乎对我有用。


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
}
© www.soinside.com 2019 - 2024. All rights reserved.