UIResponderクラス

2013. 05. 10
・継承
NSObject

・準拠
NSObject(NSObject)

・フレームワーク
/System/Library/Frameworks/UIKit.framework

・利用可能
iOS 2.0以降で利用可能

・手引書
iOSイベント処理ガイド

・宣言
UIResponder.h



●概要

UIResponderクラスはイベント処理とその応答に対するオブジェクトのインターフェイスを定義します。
UIApplicationやUIViewおよび(UIWindowを含む)それらのサブクラスのスーパークラスです。
これらのクラスのインスタンスは、しばしばレスポンダオブジェクトまたは単にレスポンダと呼ばれます。

イベントには一般的にタッチイベントとモーションイベントの2つがあります。
主なタッチのイベント処理メソッドにはtouchesBegan:withEvent:touchesMoved:withEvent:touchesEnded:withEvent:touchesCancelled:withEvent:があります。
これらのメソッドのパラメータはタッチによる(特に新規または変更の)イベントに関連付けされ、マルチタッチシーケンスのフェーズを介して、タッチ操作のイベントの経過について方法と処理をレスポンダオブジェクトに渡します。
指がスクリーンに触れたり、スクリーンをドラッグしたり、スクリーンから離したりした時に、UIEventオブジェクトが生成されます。
イベントオブジェクトにはスクリーンに指を乗せたり離したりした全てのUITouchオブジェクトを含みます。

iOS 3.0では、デバイスのシェイクなど、モーションイベントを生成する機能がシステムに導入されています。
このようなイベント処理のメソッドには、motionBegan:withEvent:motionEnded:withEvent:motionCancelled:withEvent:があります。
さらにiOS 3.0ではcanPerformAction:withSender:メソッドが追加され、レスポンダはユーザインターフェイスの命令として、レスポンダチェイン内の直近のNSUndoManagerオブジェクトを返すundoManagerプロパティを有効にすることができます。

iOS 4.0では、UIResponderにリモートコントロールイベントを処理するためのremoteControlReceivedWithEvent:メソッドが追加されました。



●タスク

●レスポンダチェーンの管理

– nextResponder
– isFirstResponder
– canBecomeFirstResponder
– becomeFirstResponder
– canResignFirstResponder
– resignFirstResponder

●入力ビューの管理

  inputView    プロパティ
  inputAccessoryView    プロパティ
– reloadInputViews

●タッチイベントの応答

– touchesBegan:withEvent:
– touchesMoved:withEvent:
– touchesEnded:withEvent:
– touchesCancelled:withEvent:

●モーションイベントの応答

– motionBegan:withEvent:
– motionEnded:withEvent:
– motionCancelled:withEvent:

●リモートコントロールイベントの応答

– remoteControlReceivedWithEvent:

●アンドゥマネージャの取得

  undoManager    プロパティ

●コマンドの検証

– canPerformAction:withSender:



●プロパティ



●インスタンスメソッド

becomeFirstResponder

ウィンドウのファーストレスポンダになることをレシーバに通知します。

- (BOOL)becomeFirstResponder

戻り値
レシーバがファーストレスポンダ状態を受理した場合はYES、拒否した場合はNOになります。
デフォルトの実装ではYESを返し、ファーストレスポンダ状態を受理します。

解説
サブクラスは、選択による強調表示など状態の更新やいくつかのアクションを実行するために、このメソッドをオーバーライドすることができます。

ファーストレスポンダになれるレスポンダオブジェクトは一つのみで、現在のレスポンダがファーストレスポンダ状態を放棄(canResignFirstResponder)すると、新しいレスポンダがファーストレスポンダになることができます。

このメソッドを呼び出すことによって、ビューなどをファーストレスポンダとしてレスポンダオブジェクトを作成することができます。
ただしビュー階層内にあるビューからのみ呼び出せます。
ビューのwindowプロパティがUIWindowオブジェクトを保持している場合、それはビュー階層内にインストールされ、nilを返した場合はビューが任意の階層から切り離されます。

利用可能
iOS 2.0以降で利用可能

宣言
UIResponder.h


resignFirstResponder

ウィンドウ内のファーストレスポンダとしての状態を放棄するように訊ねられたことを、レシーバに通知します。

- (BOOL)resignFirstResponder

解説
デフォルトの実装ではYESを返し、ファーストレスポンダ状態を放棄します。
サブクラスでは、選択による非強調表示など状態の更新や、あるいはNOを返してファーストレスポンダ状態の放棄を拒否するなど、いくつかのアクションを実行するためにこのメソッドをオーバーライドすることができます。
このメソッドをオーバーライドする場合、コード内のいくつかの時点で(スーパークラスの実装である)superを呼び出す必要があります。

利用可能
iOS 2.0以降で利用可能

宣言
UIResponder.h


touchesBegan:withEvent:

ビューまたはウィンドウ内で、指が一本以上タッチした時にレシーバに伝えます。

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event

パラメータ
touches
eventによって表された、イベントの開始フェイズのためのタッチ操作を表す、UITouchインスタンスのセットを指定します。
event
タッチ操作が属するイベントを表すオブジェクトを指定します。

解説
このメソッドはデフォルトでは何も実装しません。
しかしUIKitにおけるUIResponderの直近のサブクラス、特にUIViewのレスポンダチェーンにメッセージを転送します。
次のレスポンダにメッセージを転送するには、以下のように(スーパークラスの実装である)superにメッセージを送信し、次のレスポンダに直接メッセージを送信しないでください。

[super touchesBegan:touches withEvent:event];

このメソッドを(一般的な使用パターンである)superの呼び出しをせずにオーバーライドする場合、スタブ(空)実装としてのみであるなら、タッチイベント処理のため他のメソッドもオーバーライドする必要があります。

マルチタッチはデフォルトでは無効になっています。
マルチタッチイベントを受信するには、対応するビューのインスタンスのmultipleTouchEnabledプロパティをYESに設定する必要があります。

利用可能
iOS 2.0以降で利用可能

宣言
UIResponder.h


touchesCancelled:withEvent:

(低メモリ警告などの)システムイベントがタッチイベントをキャンセルした時にレシーバに伝えます。

- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event

パラメータ
touches
eventによって表された、イベントの終了フェイズのためのタッチ操作を表す、UITouchインスタンスのセットを指定します。
event
タッチ操作が属するイベントを表すオブジェクトを指定します。

解説
このメソッドは、Cocoa Touchフレームワークがタッチイベントのキャンセルを必要とするシステムの中断を受信した時に呼び出され、UITouchPhaseCancelのフェイズを伴うUITouchオブジェクトが生成されます。
この中断は、アプリケーションが既にアクティブではない、またはウィンドウからビューが削除されたことが原因である可能性があります。

オブジェクトがtouchesCancelled:withEvent:メッセージを受信した時、touchesBegan:withEvent:の実装内に確立した状態情報をクリーンアップする必要があります。

このメソッドはデフォルトでは何も実装しません。
しかしUIKitにおけるUIResponderの直近のサブクラス、特にUIViewのレスポンダチェーンにメッセージを転送します。
次のレスポンダにメッセージを転送するには、以下のように(スーパークラスの実装である)superにメッセージを送信し、次のレスポンダに直接メッセージを送信しないでください。

[super touchesCancelled:touches withEvent:event];

このメソッドを(一般的な使用パターンである)superの呼び出しをせずにオーバーライドする場合、スタブ(空)実装としてのみであるなら、タッチイベント処理のため他のメソッドもオーバーライドする必要があります。

利用可能
iOS 2.0以降で利用可能

宣言
UIResponder.h


touchesEnded:withEvent:

ビューまたはウィンドウから、指を一本以上離した時にレシーバに伝えます。

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event

パラメータ
touches
eventによって表された、イベントの終了フェイズのためのタッチ操作を表す、UITouchインスタンスのセットを指定します。
event
タッチ操作が属するイベントを表すオブジェクトを指定します。

解説
このメソッドはデフォルトでは何も実装しません。
しかしUIKitにおけるUIResponderの直近のサブクラス、特にUIViewのレスポンダチェーンにメッセージを転送します。
次のレスポンダにメッセージを転送するには、以下のように(スーパークラスの実装である)superにメッセージを送信し、次のレスポンダに直接メッセージを送信しないでください。

[super touchesEnded:touches withEvent:event];

オブジェクトがtouchesEnded:withEvent:メッセージを受信した時、touchesBegan:withEvent:の実装内に確立した状態情報をクリーンアップする必要があります。

マルチタッチはデフォルトでは無効になっています。
マルチタッチイベントを受信するには、対応するビューインスタンスのmultipleTouchEnabledプロパティをYESに設定する必要があります。

このメソッドを(一般的な使用パターンである)superの呼び出しをせずにオーバーライドする場合、スタブ(空)実装としてのみであるなら、タッチイベント処理のため他のメソッドもオーバーライドする必要があります。

利用可能
iOS 2.0以降で利用可能

宣言
UIResponder.h


touchesMoved:withEvent:

ビューまたはウィンドウ内で、一本以上の指に関連付けされたイベントが移動した時にレシーバに伝えます。

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event

パラメータ
touches
eventによって表された、イベント中の移動タッチ操作を表す、UITouchインスタンスのセットを指定します。
event
タッチ操作が属するイベントを表すオブジェクトを指定します。

解説
このメソッドはデフォルトでは何も実装しません。
しかしUIKitにおけるUIResponderの直近のサブクラス、特にUIViewのレスポンダチェーンにメッセージを転送します。
次のレスポンダにメッセージを転送するには、以下のように(スーパークラスの実装である)superにメッセージを送信し、次のレスポンダに直接メッセージを送信しないでください。

[super touchesMoved:touches withEvent:event];

マルチタッチはデフォルトでは無効になっています。
マルチタッチイベントを受信するには、対応するビューインスタンスのmultipleTouchEnabledプロパティをYESに設定する必要があります。

このメソッドを(一般的な使用パターンである)superの呼び出しをせずにオーバーライドする場合、スタブ(空)実装としてのみであるなら、タッチイベント処理のため他のメソッドもオーバーライドする必要があります。

利用可能
iOS 2.0以降で利用可能

宣言
UIResponder.h



参考文献

UIResponder Class Reference

Wikipedia/スタブ






Bose SoundSport wireless headphones
0 Comments
Leave a comment
管理者にだけ表示を許可する
Top
0 Trackbacks
Top
Calendar
02 | 2017/03 | 03
Sun Mon Tue Wed Thu Fri Sat
- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 -
Recent Articles
iTunes


Swift
Categories
Tips
WACOM


Reference
NSApplicationDelegateプロトコル
NSArrayクラス
NSAutoreleasePoolクラス
NSBundleクラス
NSBundle UIKit追加分
NSCalendarクラス
NSCoderクラス
NSCodingプロトコル
NSCopyingプロトコル
NSDataクラス
NSDateクラス
NSDateFormatterクラス
NSDictionaryクラス
NSEntityDescriptionクラス
NSEnumeratorクラス
NSErrorクラス
NSExceptionクラス
NSFetchRequestクラス
NSFileHandleクラス
NSFileManagerクラス
NSIndexPathクラス
NSIndexPath UIKit追加分
NSKeyedArchiverクラス
NSKeyedUnarchiverクラス
NSKeyValueCodingプロトコル
NSLocaleクラス
NSManagedObjectクラス
NSManagedObjectContextクラス
NSManagedObjectModelクラス
NSMutableArrayクラス
NSMutableCopyingプロトコル
NSMutableDictionaryクラス
NSMutableSetクラス
NSNotificationクラス
NSNotificationCenterクラス
NSNullクラス
NSNumberクラス
NSObjectクラス
NSObject UIKit追加分
NSObjectプロトコル
NSPersistentStoreクラス
NSPersistentStoreCoordinatorクラス
NSPredicateクラス
NSPropertyListSerializationクラス
NSRunLoopクラス
NSSetクラス
NSStringクラス
NSString UIKit追加分
NSTimerクラス
NSTimeZoneクラス
NSURLクラス
NSURLProtectionSpaceクラス
NSURLRequestクラス
NSUserDefaultsクラス
NSValueクラス

UIActionSheetクラス
UIActionSheetDelegateプロトコル
UIActivityIndicatorViewクラス
UIAlertViewクラス
UIAlertViewDelegateプロトコル
UIApplicationクラス
UIApplicationDelegateプロトコル
UIBarButtonItemクラス
UIBarItemクラス
UIButtonクラス
UIColorクラス
UIControlクラス
UIDatePickerクラス
UIDeviceクラス
UIEventクラス
UIFontクラス
UIGestureRecognizerクラス
UIImageクラス
UIImageViewクラス
UIKit Function
UILabelクラス
UINavigationControllerクラス
UINavigationItemクラス
UIPickerViewクラス
UIPickerViewDataSourceプロトコル
UIPickerViewDelegateプロトコル
UIPinchGestureRecognizerクラス
UIResponderクラス
UIScreenクラス
UIScrollViewクラス
UISearchBarクラス
UISearchBarDelegateプロトコル
UISegmentedControlクラス
UISliderクラス
UISwipeGestureRecognizerクラス
UISwitchクラス
UITableViewクラス
UITableViewCellクラス
UITableViewControllerクラス
UITableViewDataSourceプロトコル
UITableViewDelegateプロトコル
UITapGestureRecognizerクラス
UITextFieldクラス
UITextFieldDelegateプロトコル
UITextInputTraitsプロトコル
UITextViewクラス
UITextViewDelegateプロトコル
UIToolbarクラス
UITouchクラス
UIViewクラス
UIViewControllerクラス
UIWebViewクラス
UIWebViewDelegateプロトコル
UIWindowクラス

AVAudioPlayerクラス
AVAudioPlayerDelegateプロトコル

CADisplayLinkクラス
CAEAGLLayerクラス
CALayerクラス

CGAffineTransform
CGBitmapContext
CGColor
CGColorSpace
CGContext
CGGeometry
CGImage
CGPath

EAGLContextクラス
EAGLDrawableプロトコル

Foundation Constants
Foundation Data Types
Foundation Functions

MPMediaItemクラス
MPMediaItemArtworkクラス
MPMediaPlaylistクラス
MPMediaPropertyPredicateクラス
MPMediaQueryクラス
MPMusicPlayerControllerクラス

Randomization Services

System Sound Services
BOSE

Bose SoundSport wireless headphones
ARC
Technical Q&A
情報プロパティリストキー
Start Developing iOS Apps Today
SQLite
OpenGL ES
Amazon


Monthly Archives
Recent Comments
Recent TrackBacks
RSS Link
Profile

Author:水月杏香
永遠の初心者プログラマ。

QR Code
QR
Visitors