2009-06-10 8 views
0

나는 다른 응용 프로그램에서 텍스트 필드 (AXTextField)의 값을 변경하고 시도하기 위해 Cocoa Accessibility API를 사용하고 있지만 문제가 발생했습니다. 코드는 문제의 텍스트 필드의 내용을 정확하게 식별하고 수정하며 필드의 텍스트는 눈에 띄게 변경되지만 변경하려는 내용은 제어하려고하는 프로그램에 의해 등록되지 않습니다. 키보드 이벤트를 생성 할 필요없이 API로이를 수행 할 수있는 방법이 있습니까?프로그래밍 방식으로 AXTextField 설정하기 (OS X Cocoa Accessibility API)

샘플 코드 :

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

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

그리고 "양"하지만 변화를 인식하지 못하는 다른 프로그램에서 지정한 값으로 텍스트 필드 변경 - 내가 그걸 얻기 위해 자신의 번호를 입력 가야 변경 사항을 선택합니다 (새 값을 상자에 입력 할 때 프로그램이 응답하기 때문에 차이점을 알 수 있습니다). 누구든지 올바른 방향으로 나를 가리킬 수 있습니까?

답변

1

후손을 위해 : 정보 소스는 실제로 이것이 제어하려고하는 응용 프로그램의 버그임을 알려줍니다. UI 브라우저 (http://prefabsoftware.com/uibrowser/)를 사용하여 텍스트 필드의 값을 설정하여 차이를 알 수 있습니다. UI 브라우저가 변경 스틱을 만들 수없는 경우 문제가 제어에서 벗어납니다. 이것은 AppleScript로 행동 "AXConfirm"를 수행

을하지만, 코코아 상응하는 무엇이든, 그것은 UI 브라우저가 (내가 전에 사용한 적이없는 경우에도 변경 스틱을 만들 수 있습니다

0

텍스트 필드를 말하십시오).

관련 문제