2

私のアプリでは、他のアプリのウィンドウのサイズを変更できるかどうかを確認したいと思います。

Peter Hoseyがこの質問に答えたように、アクセシビリティAPIを使用して、ウィンドウにkAXGrowAreaAttribute属性があるかどうかをテストしています(NULLがサイズ変更できない場合)。

問題は、kAXGrowAreaAttributeの戻り値が常にNULLであり、ウィンドウのサイズが変更可能かどうかは関係ないということです。注:Apple UIElementInspectorの例からUIElementUtilitiesクラスを使用して値を取得するには(同じ結果でAXUIElementCopyAttributeValueを直接使用しようとしました)。

何か案が?私はライオンで働いていますが、これが問題になる可能性がありますか?前もって感謝します。

編集:

UIElementUtilitiesクラスのメソッドをいじってみると、解決策が見つかりました。

方法を使用するだけです

+ (BOOL)canSetAttribute:(NSString *)attributeName ofUIElement:(AXUIElementRef)element

kAXSizeAttributeとフォーカスされたウィンドウを使用します。ウィンドウが大きいかどうかに応じて、YESまたはNOを返します。

4

2 に答える 2

2

おそらくあなたがライオンにいるからでしょう。サイズボックスは削除されました。サイズ変更可能なウィンドウは、すべてのエッジでサイズ変更可能になりました。

はい、サイズを変更できるかどうかをテストするのはおそらく正しい方法です。SnowLeopardではうまくいくようです。

于 2011-11-28T21:53:22.740 に答える
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
}
于 2020-01-14T14:53:44.367 に答える