はじめよくわかりませんでしたが、以下で実装可能です。ご参考まで。
うーん、時間かかった。標準でサポートしてね・・・・
-(IBAction) onTouchDown:(id)sender{
// Interface Builderを使って、TouchDownイベントと結びつける。
// 1秒後にdidDetectLoungTouchメソッドが呼び出される。
// ただしその間、TouchUpInsideイベントが発生すると、下のメソッドが
// 呼ばれ、キャンセルされる。
[self performSelector:@selector(didDetectLongTouch:) withObject:sender afterDelay:1];
}
-(IBAction) onTouchUpInside:(id)sender{
// Interface Builderを使って、TouchUpInside イベントと結びつける。
// 上で設定したセレクタでの実行がキャンセルされる。
[NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(didDetectLongTouch:) object:sender];
// ここに短く押した場合の処理を実装する。
// ただし、長く押したあとのTouchUpでもイベントされるため、
長く押したときの処理との互換性を確保、もしくは長く押した際のフラグを
もとに、互換性が確保できない処理をスキップする。
}
-(void) didDetectLongTouch:(id)sender{
// 長押しした際の処理を実装する。
}
0 件のコメント:
コメントを投稿