私が知る限り、簡単な方法はありません。私は1つを見つけました非常に粗いウィンドウの最大と最小のサイズを取得する方法。
ウィンドウのサイズがどれだけ遠くにあるかを確認するには、幅と高さを非常に大きく設定し、このサイズを最大値として記憶してから、幅と高さを小さく設定して再度同じ操作を行います。この後、私は幅と高さを元の値にリセットしました。
明らかな問題は、ウィンドウのサイズが変更されたことがユーザーに非常にわかりやすいということです。
リサイズの増分に関しては、私は(現時点で)その情報を得るための回避策を考えることはできません。
は、とにかくここに最大値と最小サイズのワークアウトのために私が持っているコードです:あなたは不思議に思った場合には
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と呼ばれるアップルのサンプルプロジェクトの1から撮影したクラスです。
また、アスペクト比が必要です。 –