2010-08-19 3 views
0

응용 프로그램과의 사용자 상호 작용을 잡는 방법이 있는지 궁금합니다.아이폰 응용 프로그램 상호 작용을 잡으십시오.

내가 물어 보는 이유는 사용자가 응용 프로그램과 상호 작용할 때 db의 날짜를 업데이트한다는 것입니다. 날짜가 10 분 이상이라면 다른 사용자가 컴백하고 프로그램과 상호 작용할 때까지 다른 사용자가 오프라인으로 볼 수 있습니다.

아무도 내가이 필드를 업데이트하기 위해 사용자 상호 작용을 잡을 수있는 방법에 대한 아이디어가 있습니까?

감사합니다.

p.s. 네비게이션 앱입니다. 그래서 경우에도 페이지가 변경 될 때 말할 수있는 탐색 컨트롤러에 처리기를 추가 할 수 있습니다 ???

답변

2

아마도 가장 편리한 방법은 UIApplication을 서브 클래스 화하고 sendAction:to:from:forEvent: 메서드를 재정의하는 것입니다. 또한 "NSPrincipalClass"라는 이름의 Info.plist 파일에 UIApplication 대신 하위 클래스에 UIKit에 알려주는 하위 클래스의 이름을 포함하는 문자열 값을 가진 키를 추가해야합니다.

MyApplication.m :

- (BOOL)sendAction:(SEL)action to:(id)target 
     from:(id)sender forEvent:(UIEvent *)event 
{ 
    ResetInterationTimeout(); 

    return [super sendAction:action to:target from:sender forEvent:event]; 
} 

의 Info.plist : 상호 작용에 의해 당신은 당신은 쉽게 할 수있는 '접촉'을 의미

<key>NSPrincipalClass</key> 
<string>MyApplication</string> 
0

경우 그 (만약의 UIView를 넣어 다른 하나 위에 전역 컨트롤이없는) 상위 컨트롤에 현재 날짜를 저장하는 터치 등록 의무가있는 NavigationController의 각 UIViewController에서 (심지어 A ppDelegate가 작동 할 수도 있음). 그런 다음이 컨트롤러는 날짜와 이전 날짜를 비교할 수 있습니다 (저장해야 함). 시간차가 임계 값을 초과하면 적절한 개체를 메시징하여 작업을 수행 할 수 있습니다. Here은 터치 방식을 잡는 방법에 대한 Apple의 가이드입니다 (첫 번째 터치를 얻으려면 touchesBegan:WithEvent: 메서드를 재정의해야합니다)