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

0

テキスト フィールドに次のように伝えてみてください: アクション "AXConfirm" を実行してください

これは Applescript ですが、Cocoa に相当するものが何であれ、UI ブラウザで変更ができなくても変更が適用される場合があります (私は以前に使用したことがあります)。

于 2009-07-15T18:59:37.987 に答える