OS X辅助功能API最小宽度

我发现了另一个问题和答案,解释了如何使用Accessibility API获取窗口的宽度,高度和位置。 有什么方法可以找到最小尺寸,最大尺寸,调整增量等吗?

编辑:

我目前的做法是使用AXUIElementCopyAttributeValue但我不确定这是可能的。 看看参考资料,你可以看到有很多我可以访问的属性,但我找不到任何提及的窗口的最小或最大尺寸。 注意看起来位置可以通过这个API访问。

现在我也在查看一些名为Son of Grab的示例代码,它也能够访问窗口大小和位置,但我不相信该方法适用于最小或最大大小。


据我所知,没有简单的方法。 我发现了一种非常粗糙的方法来获取窗口的最大和最小尺寸。

它涉及将宽度和高度设置为非常大的数字,以查看窗口调整大小的程度,然后将此大小记忆为最大值,然后将宽度和高度设置为小数字,然后再次执行相同操作。 毕竟,我只是将宽度和高度重置为原始值。

与此明显的问题是,用户非常清楚该窗口已调整大小。

至于调整大小增量,我想不出(现在)任何解决方法来获取该信息。

无论如何,这里是我用来计算最大和最小尺寸的代码:

AXUIElementRef window; // The window

AXValueRef sizeValue = (AXValueRef)[UIElementUtilities valueOfAttribute:@"AXSize" ofUIElement:window];
CGSize windowSize;
AXValueGetValue(sizeValue, kAXValueCGSizeType, &windowSize);

CGFloat windowWidth = windowSize.width;
CGFloat windowHeight = windowSize.height;

// Set it to a very large number
[UIElementUtilities setStringValue:@"w=5000 h=5000" forAttribute:@"AXSize" ofUIElement:window];

AXValueRef maxSizeValue = (AXValueRef)[UIElementUtilities valueOfAttribute:@"AXSize" ofUIElement:window];
CGSize maxWindowSize;
AXValueGetValue(maxSizeValue, kAXValueCGSizeType, &maxWindowSize);

CGFloat maxWindowWidth = maxWindowSize.width;
CGFloat maxWindowHeight = maxWindowSize.height;

NSLog(@"max width = %f. max height = %f.", maxWindowWidth, maxWindowHeight);

// Set it to a very small number
[UIElementUtilities setStringValue:@"w=0 h=0" forAttribute:@"AXSize" ofUIElement:window];

AXValueRef minSizeValue = (AXValueRef)[UIElementUtilities valueOfAttribute:@"AXSize" ofUIElement:window];
CGSize minWindowSize;
AXValueGetValue(minSizeValue, kAXValueCGSizeType, &minWindowSize);

CGFloat minWindowWidth = minWindowSize.width;
CGFloat minWindowHeight = minWindowSize.height;

NSLog(@"min width = %f. min height = %f.", minWindowWidth, minWindowHeight);

// Reset size
[UIElementUtilities setStringValue:[NSString stringWithFormat:@"w=%f h=%f", windowWidth, windowHeight] forAttribute:@"AXSize" ofUIElement:window];

如果您想知道, UIElementUtilities是我从一个名为UIElementInspector的Apple示例项目中UIElementUtilities的一个类。

链接地址: http://www.djcxy.com/p/8801.html

上一篇: OS X Accessibility API Minimum Width

下一篇: jQuery mouseout on iPad