【问题标题】:Setting value of AXTextField programmatically (OS X Cocoa Accessibility API)以编程方式设置 AXTextField 的值(OS X Cocoa Accessibility API)
【发布时间】:2009-06-10 04:42:14
【问题描述】:

我正在使用 Cocoa Accessibility API 尝试修改另一个应用程序中的文本字段 (AXTextField) 的值,但我遇到了一个问题:我的代码正确识别并修改了文本字段的内容问题,并且该字段的文本明显更改,但是我尝试控制的程序未注册更改。有没有办法在 API 中执行此操作而无需生成键盘事件?

示例代码:

AXUIElementCopyElementAtPosition(appRef,
                clickPoint.x,
                clickPoint.y,
                &boxRef);

NSString *valueToSet = [NSString stringWithFormat:@"%f",amount];
AXUIElementSetAttributeValue(boxRef,kAXValueAttribute,valueToSet);

文本字段更改为“金额”中指定的值,但其他程序无法识别更改 - 我必须自己输入数字才能获取更改(我可以区分,因为当在框中输入新值时程序会响应)。谁能指出我正确的方向?

【问题讨论】:

    标签: cocoa macos accessibility


    【解决方案1】:

    对于后代:知情人士告诉我,这实际上是我试图控制的应用程序中的一个错误。您可以通过使用 UI 浏览器 (http://prefabsoftware.com/uibrowser/) 尝试设置文本字段的值来区分;如果 UI 浏览器无法使更改生效,那么事情就超出了您的控制范围。

    【讨论】:

      【解决方案2】:

      尝试告诉文本字段: 执行操作“AXConfirm”

      这是 Applescript,但无论 Cocoa 等价物是什么,即使 UI 浏览器不能(我以前使用过),它也可能使更改生效。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-02-02
        • 2011-12-16
        • 1970-01-01
        • 2011-01-06
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多