UIApplicationクラス

2013. 05. 12
・継承
UIResponder : NSObject

・準拠
UIActionSheetDelegate
NSObject (NSObject)

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

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

・宣言
UIApplication.h



●概要

UIApplicationクラスは、iOS上で実行するアプリケーションの制御と調整の一元的な管理を提供します。

全てのアプリケーションはUIApplication(またはUIApplicationのサブクラス)のインスタンスを必ず一つ持つ必要があります。
アプリケーションが起動するとUIApplicationMain関数を呼び出し、他のタスクとは独立したシングルトンのUIApplicationオブジェクトを生成します。
その後sharedApplicationクラスメソッドで呼び出すことによって、オブジェクトにアクセスすることができます。

UIApplicationオブジェクトの主要な役割は、入力されたユーザイベントの初期手順の処理を行うことです。
またコントロールオブジェクト(UIControl)によって、適切なターゲットオブジェクトにアクションメッセージを送ります。
さらにUIApplicationオブジェクトは、アプリケーションが現在開いている全てのウィンドウ(UIWindowオブジェクト)のリストを保持し、それらを介してアプリケーションのUIViewオブジェクトのいずれかを取得することができます。
アプリケーションオブジェクトには通常、アプリケーションの重要なランタイムイベント(例えば、アプリケーションの起動、メモリ不足の警告、アプリケーションの終了など)を通知し、適切に対応する機会を与えるデリゲートオブジェクトが割り当てられています。

アプリケーションは、openURL:メソッドを介して電子メールや画像ファイルといったリソースを協調処理することができます。
例えばアプリケーションがこのメソッドを使って、電子メールのURLからメールクライアントの起動とメッセージの表示を行うこともできます。

またUIApplicationとUIApplicationDelegateのプログラムインターフェイスは、デバイス固有の動作を管理することもできます。
インターフェイスの向きの変化に応じて一時的にタッチイベントの入力を一時停止したり、(ユーザの顔の)近接を感知してオン/オフを切り替えたり、アプリケーションの応答を制御することができます。

iOS 3.0では、UIApplicationにリモート通知の登録や、アンドゥ/リドゥのUIをトリガするための(applicationSupportsShakeToEdit)、インストールされたアプリケーションがURLを開けるかどうかを決定するための(canOpenURL:)メソッドが追加されています。

iOS 4.0では、UIApplicationにバックグラウンドでの実行の管理や、ローカル通知のスケジューリングとキャンセル、リモートコントロールイベントの受信を制御するためのメソッドや定数が追加されています。

UIApplicationはUIApplicationDelegateプロトコルを採用したデリゲートを定義し、いくつかのプロトコルメソッドを実装する必要があります。

サブクラス化の注意

カスタムイベントやアクションディスパッチを実装するため、sendEvent:またはsendAction:to:from:forEvent:をオーバーライドするために、UIApplicationのサブクラスで解決する場合があります。
しかしこのクラスを拡張するための有効な必要性は稀で、ほとんどの場合はアプリケーションデリゲート(UIApplicationDelegate)で十分です。
UIApplicationをサブクラス化する場合は、サブクラスで達成しようとしていることを熟考してみてください。



●タスク

●アプリケーションインスタンスの取得

+ sharedApplication

●デリゲートの設定と取得

  delegate    プロパティ

●アプリケーションウィンドウの取得

  keyWindow    プロパティ
  windows    プロパティ

●デフォルトのインターフェイスの向きの管理

– supportedInterfaceOrientationsForWindow:

●イベントの制御と処理

– sendEvent:
– sendAction:to:from:forEvent:
– beginIgnoringInteractionEvents
– endIgnoringInteractionEvents
– isIgnoringInteractionEvents
  applicationSupportsShakeToEdit    プロパティ
  proximitySensingEnabled    プロパティ    iOS 3.0では非推奨

●URLリソースを開く

– openURL:
– canOpenURL:

●リモート通知の登録

– registerForRemoteNotificationTypes:
– unregisterForRemoteNotifications
– enabledRemoteNotificationTypes

●アプリケーションアクティビティの管理

  idleTimerDisabled    プロパティ

●バックグラウンドでの実行の管理

  applicationState    プロパティ
  backgroundTimeRemaining    プロパティ
– beginBackgroundTaskWithExpirationHandler:
– endBackgroundTask:
– setKeepAliveTimeout:handler:
– clearKeepAliveTimeout

●非同期の状態復元の実行

– extendStateRestoration
– completeStateRestoration

●ローカル通知の登録

– scheduleLocalNotification:
– presentLocalNotificationNow:
– cancelLocalNotification:
– cancelAllLocalNotifications
  scheduledLocalNotifications    プロパティ

●保護されたコンテンツの利用

  protectedDataAvailable    プロパティ

●リモートコントロールイベントの登録

– beginReceivingRemoteControlEvents
– endReceivingRemoteControlEvents

●ステータスバーの向きの管理

– setStatusBarOrientation:animated:
  statusBarOrientation    プロパティ
  statusBarOrientationAnimationDuration    プロパティ

●アプリケーションの外観の制御

– setStatusBarHidden:withAnimation:
  statusBarHidden    プロパティ
– setStatusBarStyle:animated:
  statusBarStyle    プロパティ
  statusBarFrame    プロパティ
  networkActivityIndicatorVisible    プロパティ
  applicationIconBadgeNumber    プロパティ
  userInterfaceLayoutDirection    プロパティ
– setStatusBarHidden:animated:    iOS 3.2では非推奨

●Newsstandアプリケーションのアイコンの設定

- setNewsstandIconImage:



●プロパティ

delegate

アプリケーションオブジェクトのデリゲートです。

@property(nonatomic, assign) id<UIApplicationDelegate> delegate

解説
デリゲートはUIApplicationDelegate正式プロトコルを採用する必要があります。
UIApplicationはデリゲートを割り当てますが保持はしません。

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

宣言
UIApplication.h


idleTimerDisabled

アプリケーションのアイドルタイマーを無効にするかどうかを制御するブール値です。

@property(nonatomic, getter=isIdleTimerDisabled) BOOL idleTimerDisabled

解説
このプロパティのデフォルト値はNOです。
アプリケーションでタッチ操作による短期間ユーザの入力が無い場合、デバイスの画面が薄暗くなりシステムはスリープ状態になります。
これは電力を節約する目的のために行われます。
しかし(ゲームなどの)加速度センサ以外のユーザ入力を持たないアプリケーションの場合、このプロパティをYESにすることでアイドルタイマーを無効にして、システムのスリープを防ぐことができます。

重要:このプロパティは必要な場合にのみ設定し、必要が無くなったらNOにしてリセットする必要があります。
ほとんどのアプリケーションは、アイドルタイマーが経過した時にシステムがスクリーンをオフにできるようにする必要があります。
これにはオーディオアプリケーションも含まれます。
適切なオーディオセッションサービスを使用し、スクリーンがオフになっても継続して再生や録音ができるようにしてください。
地図アプリケーションやゲームなどの、散発的にユーザと対話するアプリケーションでは、アイドルタイマーを無効にする必要があります。

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

宣言
UIApplication.h


statusBarHidden

ステータスバーが非表示かどうかを決定するブール値です。

@property(nonatomic, getter=isStatusBarHidden) BOOL statusBarHidden

戻り値
YESはステータスバーが非表示であることを意味し、NOは表示を意味します。

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

宣言
UIApplication.h



●クラスメソッド

sharedApplication

シングルトンのアプリケーションインスタンスを返します。

+ (UIApplication *)sharedApplication

戻り値
アプリケーションインスタンスはUIApplicationMain関数で生成されます。

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

宣言
UIApplication.h



●インスタンスメソッド

openURL:

指定したURLのリソースを開きます。

- (BOOL)openURL:(NSURL *)url

パラメータ
url
URL(Universal Resource Locator)を表すオブジェクトを指定します。
UIKitはhttp:、https:、tel:、mailto:スキームをサポートします。

戻り値
URLの場所にあるリソースが正常に開けた場合はYES、それ以外の場合はNOを返します。

解説
URLは同じまたは別のアプリケーションのリソースの場所を指定できます。
リソースが別のアプリケーションの場合、このメソッドを呼び出すと呼び出し元のアプリケーションが終了し、他のアプリケーションが起動する場合があります。

このメソッドの前にcanOpenURL:を呼び出し、アプリケーションが処理可能かどうかを照合することができます。

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

宣言
UIApplication.h


setStatusBarHidden:animated:

ステータスバーを非表示または表示にし、オプションで遷移をアニメーションできます。
(このメソッドはiOS 3.2では非推奨です。代わりにsetStatusBarHidden:withAnimation:を使用してください。)

- (void)setStatusBarHidden:(BOOL)hidden animated:(BOOL)animated

パラメータ
hidden
ステータスバーを非表示にする場合はYES、表示する場合はNOにします。
デフォルト値はNOです。
animated
非表示状態から、または非表示状態への遷移をアニメーションする場合はYES、それ以外の場合はNOにします。

解説
hiddenの値に応じて、インターフェイスの上部にステータスバーの表示/非表示をフェードするアニメーションを行うことができます。

利用可能
iOS 2.0以降で利用可能
iOS 3.2で非推奨

宣言
UIApplication.h


setStatusBarHidden:withAnimation:

ステータスバーを非表示または表示し、オプションで遷移をアニメーションします。

- (void)setStatusBarHidden:(BOOL)hidden withAnimation:(UIStatusBarAnimation)animation

パラメータ
hidden
ステータスバーを非表示にするにはYES、表示するにはNOにします。
animated
アニメーションする必要があるかどうか、要求した場合にステータスバーをフェードイン/アウトまたはスライドイン/アウトするかを示す定数です。

解説
詳細はUIStatusBarAnimation型の定数の説明を参照してください。

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

宣言
UIApplication.h



●定数

UIInterfaceOrientation

アプリケーションのユーザインターフェイスの向きです。

typedef enum {
    UIInterfaceOrientationPortrait=UIDeviceOrientationPortrait,
    UIInterfaceOrientationPortraitUpsideDown=UIDeviceOrientationPortraitUpsideDown,
    UIInterfaceOrientationLandscapeLeft=UIDeviceOrientationLandscapeRight,
    UIInterfaceOrientationLandscapeRight=UIDeviceOrientationLandscapeLeft
} UIInterfaceOrientation;

定数

UIInterfaceOrientationPortrait
デバイスがポートレートモードで、デバイスを垂直に持った時にホームボタンが下部にある状態です。
iOS 2.0以降で利用可能
UIApplication.hで宣言

UIInterfaceOrientationPortraitUpsideDown
デバイスがポートレートモードですが上下逆で、デバイスを垂直に持った時にホームボタンが上部にある状態です。
iOS 2.0以降で利用可能
UIApplication.hで宣言

UIInterfaceOrientationLandscapeLeft
デバイスがランドスケープモードで、デバイスを垂直に持った時にホームボタンが左側にある状態です。
iOS 2.0以降で利用可能
UIApplication.hで宣言

UIInterfaceOrientationLandscapeRight
デバイスがランドスケープモードで、デバイスを垂直に持った時にホームボタンが右側にある状態です。
iOS 2.0以降で利用可能
UIApplication.hで宣言

解説
statusBarOrientationプロパティやsetStatusBarOrientation:animated:メソッドでこれらの定数を使用します。

デバイスの回転に対してコンテンツは反対の方向に回転する必要があるため、UIDeviceOrientationLandscapeRightは UIInterfaceOrientationLandscapeLeftに、UIDeviceOrientationLandscapeLeftは UIInterfaceOrientationLandscapeRightに割り当てられていることに注意してください。

宣言
UIApplication.h


UIStatusBarAnimation

ステータスバーの表示/非表示時のアニメーションに適用されます。

 typedef enum {
    UIStatusBarAnimationNone,
    UIStatusBarAnimationFade,
    UIStatusBarAnimationSlide,
} UIStatusBarAnimation;

定数

UIStatusBarAnimationNone
ステータスバーの表示/非表示にアニメーションを適用しません。
iOS 3.2以降で利用可能
UIApplication.hで宣言

UIStatusBarAnimationFade
ステータスバーの表示/非表示で、フェードイン/フェードアウトを行います。
iOS 3.2以降で利用可能
UIApplication.hで宣言

UIStatusBarAnimationSlide
ステータスバーの表示/非表示で、スライドイン/スライドアウトを行います。
iOS 3.2以降で利用可能
UIApplication.hで宣言

解説
UIStatusBarAnimation型の定数はsetStatusBarHidden:withAnimation:メソッドの引数です。

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

宣言
UIApplication.h



●通知

全てのUIApplication通知はsharedApplicationによって返されるアプリケーションインスタンスによって投じられます。


UIApplicationDidBecomeActiveNotification

アプリケーションがアクティブになった時にポストされます。

イベントを受信している時、アプリケーションはアクティブです。
アクティブなアプリケーションはフォーカスを持っていると言うことができます。
起動した後にフォーカスを取得し、オーバーレイのウィンドウがポップアップしたりデバイスがロックされた時にフォーカスを失い、デバイスがアンロックされるとフォーカスを取得します。

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

宣言
UIApplication.h


UIApplicationDidChangeStatusBarFrameNotification

ステータスバーのフレームが変更した時にポストされます。

新しいステータスバーのフレームの位置とサイズはCGRect構造体で表され、カプセル化してNSValueオブジェクトとしてuserInfo辞書に格納されます。
この値はUIApplicationStatusBarFrameUserInfoKeyでアクセスすることができます。

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

宣言
UIApplication.h


UIApplicationDidChangeStatusBarOrientationNotification

アプリケーションのユーザインターフェイスの向きが変わった時にポストされます。

UIInterfaceOrientationの値は、カプセル化してNSNumberオブジェクトとしてuserInfo辞書に格納されます。
この値はUIApplicationStatusBarOrientationUserInforKeyでアクセスすることができます。

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

宣言
UIApplication.h


UIApplicationDidFinishLaunchingNotification

アプリケーションの起動が終了した直後にポストされます。

アプリケーションの起動が、リモート通知による結果であったり、他のアプリケーションがURLリソースを開いてポスティングアプリケーションを要求したことによるものであった場合は、userInfo辞書に通知オブジェクトを格納します。
UIApplicationLaunchOptionsURLKeyUIApplicationLaunchOptionsSourceApplicationKey(URL用)、UIApplicationLaunchOptionsRemoteNotificationKey(リモート通知用)
UIApplicationLaunchOptionsLocalNotificationKey(ローカル通知用)定数を使用して、辞書の内容にアクセスすることができます。
通常のアプリケーションの起動でポストされた通知には、userInfo辞書がありません。

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

宣言
UIApplication.h


UIApplicationDidReceiveMemoryWarningNotification

アプリケーションがメモリ不足についてOSから警告を受信した時にポストされます。

この通知はuserInfo辞書を含みません。

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

宣言
UIApplication.h


UIApplicationSignificantTimeChangeNotification

(深夜に)日付が変わったり、キャリアが時刻を更新したり、夏時間になる(または夏時間から戻る)など、時刻に大幅な変更があった時にポストされます。

この通知はuserInfo辞書を含みません。

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

宣言
UIApplication.h


UIApplicationWillChangeStatusBarOrientationNotification

アプリケーションのユーザインターフェイスの向きが変わる時にポストされます。

UIInterfaceOrientationの値は、カプセル化してNSNumberオブジェクトとしてuserInfo辞書に格納されます。
この値はUIApplicationStatusBarOrientationUserInforKeyでアクセスすることができます。

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

宣言
UIApplication.h


UIApplicationWillChangeStatusBarFrameNotification

ステータスバーのフレームが変更する時にポストされます。

新しいステータスバーのフレームの位置とサイズはCGRect構造体で表され、カプセル化してNSValueオブジェクトとしてuserInfo辞書に格納されます。
この値はUIApplicationStatusBarFrameUserInfoKeyでアクセスすることができます。

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

宣言
UIApplication.h


UIApplicationWillResignActiveNotification

アプリケーションがアクティブでなくなり、フォーカスを失う時にポストされます。

イベントを受信している時、アプリケーションはアクティブです。
アクティブなアプリケーションはフォーカスを持っていると言うことができます。
起動した後にフォーカスを取得し、オーバーレイのウィンドウがポップアップしたりデバイスがロックされた時にフォーカスを失い、デバイスがアンロックされるとフォーカスを取得します。

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

宣言
UIApplication.h


UIApplicationWillTerminateNotification

アプリケーションが終了する時にポストされます。

この通知はデリゲートのapplicationWillTerminate:メソッドに関連付けられています。
この通知はuserInfo辞書を含みません。

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

宣言
UIApplication.h



参考文献

UIApplication Class Reference






Bose QuietComfort 20
0 Comments
Leave a comment
管理者にだけ表示を許可する
Top
0 Trackbacks
Top
Calendar
08 | 2017/09 | 10
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
Recent Articles
iTunes


Swift
Categories
Tips
Profile

水月杏香

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

Wish List
WACOM


ARC
Technical Q&A
情報プロパティリストキー
Start Developing iOS Apps Today
BOSE

Bose QuietComfort 20
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
Amazon


OpenGL ES
SQLite
Monthly Archives
Recent Comments
Recent TrackBacks
RSS Link
Visitors
QR Code
QR