0

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

示例代码:

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

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

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

4

2 回答 2

1

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

于 2009-06-11T23:45:02.690 回答
0

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

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

于 2009-07-15T18:59:37.987 回答