0

アプリケーションとのユーザーのやり取りをキャッチする方法があるかどうか疑問に思っています。

私が尋ねる理由は、ユーザーがアプリとやり取りするときに、データベースの日付を更新するためです。日付が 10 分以上経過している場合、他のユーザーからは、戻ってきてプログラムを操作するまでオフラインと見なされます。

このフィールドを更新するためにユーザーの操作をキャッチする方法について、誰かアイデアはありますか?

ありがとう

psナビアプリです。ですから、ページが変更されたときにハンドラーをナビゲーションコントローラーに追加できたとしても、それはできるでしょうか???

4

2 に答える 2

2

おそらく最も便利な方法は、UIApplication をサブクラス化し、sendAction:to:from:forEvent:メソッドをオーバーライドすることです。また、サブクラスの名前を含む文字列値を持つ「NSPrincipalClass」という名前の Info.plist ファイルにキーを追加する必要があります。これにより、UIKit が UIApplication の代わりにサブクラスに通知されます。

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>
于 2010-08-19T08:17:41.840 に答える
0

インタラクションが「タッチ」を意味する場合は、タッチを登録する義務がある NavigationController の各 UIViewController に UIView を配置することで簡単に実行できます (他の上にグローバルなものがない場合)。より高いレベルのコントローラーに日付を変更します (AppDelegate でさえ機能する可能性があります)。次に、このコントローラーは日付を前の日付と比較し (保存する必要があります)、時間差がしきい値を超える場合は、適切なオブジェクトにメッセージを送信してアクションを起動できます。 これは、タッチをキャッチする方法に関するAppleのガイドです(最初のタッチを取得するには、メソッドをオーバーライドする必要がありますtouchesBegan:WithEvent:

于 2010-08-19T08:20:37.033 に答える