内容の保証はできません。


/System/Library/frameWorks/UIKit.framework

クラス UIWindow

NSObject
  |
  +--UIResponder
      |
      +--UIView
          |
          +--UIWindow

概要

Mac OS Xアプリケーションの開発では、ウインドウは重要な役割を果たしますが、iPhoneアプリケーションではウインドウの役割は大幅に小さくなります。典型的なiPhoneアプリケーションのウイン ドウは1つだけで、UIWindowクラスのインスタンスで表現されます。アプリケーションは、起動時にこのウインドウを作成し(または、nibファイルからウインドウをロードし)、1つ以上のビューをそこに追加して表示します。その後は、このウインドウオブジェクトを再び参照することはほとんどありません。

ウインドウオブジェクトには、「閉じる」ボタンやタイトルバーなどの視覚的な装飾はありません。したがって、ユーザが直接ウインドウを閉じたり操作したりすることはできません。ウインドウに対するすべての操作は、プログラムインターフェイスを通して行います。また、アプリケーションは、イベントの送付を円滑に行うためにウインドウを使用します。たとえば、ウインドウオブジェクトは、現在のファーストレスポンダオブジェクトを常に追跡しており、UIApplicationオブジェクトからの依頼があると、そのレスポンダにイベントを送ります。

経験豊富なMac OS Xデベロッパは、UIWindowクラスの継承関係に違和感を覚えるかもしれません。Mac OS Xでは、NSWindowの親クラスはNSResponderです。iPhone OSでは、UIWindowの親クラスはUIViewです。したがって、iPhone OSでは、ウインドウはビューオブジェクトでもあります。親クラスは異なりますが、一般に、iPhone OSでのウインドウの扱いはMac OS Xと同様です。通常は、UIWindowオブジェクトのビュー関連プロパティを直接操作することはありません。

アプリケーションウインドウを作成するとき、ウインドウの最初のフレームサイズは、必ず画面全 体を覆うように設定するべきです。nibファイルからウインドウをロードする場合、Interface Builder が、画面サイズより小さいウインドウの作成を許可しません。しかし、プログラミングによってウインドウを作成する場合は、作成時に望みのフレーム矩形を明示的に渡さなければなりません。画面の矩形と異なる矩形は渡さないでください。画面の矩形は、UIScreenオブジェクトから次のようにして取得できます。

 
UIWindow* aWindow = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen]bounds]] autorelease];
 

iPhone OSでは、ウインドウを互いに重ねることが可能ですが、アプリケーションで複数のウインド ウを作成するべきではありません。システム自体が、システムステータスバー、重要な警告、その他のメッセージをアプリケーションウインドウの手前に表示するために、追加のウインドウを使用します。アプリケーションコンテンツの手前に警告を表示したい場合は、追加のウインドウを作成するのではなく、UIKitによって提供されている警告ビューを使用します。

インデックス

ウインドウの設定

windowLevel property

キーウインドウの作成

keyWindow property
- makeKeyAndVisible
- becomeKeyWindow
- makeKeyWindow
- resignKeyWindow

座標系の変換

- convertPoint:toWindow:
- convertPoint:fromWindow:
- convertRect:toWindow
- convertRect:fromWindow

イベント処理

- sendEvent:

プロパティ

keyWindow

アプリケーションのキーウインドウであるかどうかを示す。

@property(nonatomic, readonly, getter=isKeyWindow) BOOL keyWindow

windowLevel

ウインドウレベルを返す。

@property(nonatomic) UIWindowLevel windowLevel

インスタンスメソッド

becomeKeyWindow

キーウインドウになる時にこの処理が呼ばれる。

- (void)becomeKeyWindow

convertPoint:fromWindow:

レシーバ上での任意の座標を指定したウインドウのローカル座標系に変換して返す。

- (CGPoint)convertPoint:(CGPoint)point fromWindow:(UIWindow *)window

convertPoint:toWindow:

指定したウインドウ上での任意の座標をレシーバのローカル座標系に変換して返す。

- (CGPoint)convertPoint:(CGPoint)point toWindow:(UIWindow *)window

convertRect:fromWindow

レシーバ上での任意の矩形座標を指定したウインドウのローカル座標系に変換して返す。

- (CGRect)convertRect:(CGRect)rect fromWindow:(UIWindow *)window

convertRect:toWindow

指定したウインドウ上での任意の矩形座標をレシーバのローカル座標系に変換して返す。

- (CGRect)convertRect:(CGRect)rect toWindow:(UIWindow *)window

makeKeyAndVisible

キーウインドウを作成し描画する。

- (void)makeKeyAndVisible

makeKeyWindow

キーウインドウを作成する。

- (void)makeKeyWindow

resignKeyWindow

キーウインドウでなくなる時にこの処理が呼ばれる。

- (void)resignKeyWindow

sendEvent:

UIApplicationから送られてくるイベントを処理する。
このメソッドを直接呼び出すことはない。

- (void)sendEvent:(UIEvent *)event

コンスタント

UIWindowLevel

レベルによりウインドウの優先度を管理できる。
以下の表では下に行くほど優先度が高い。

ウインドウレベル説明
UIWindowLevelNormal標準のレベル
UIWindowLevelAlertアラートビューのためのレベル
UIWindowLevelStatusBarステータスウインドウのためのレベル

keyboard Notification User Info Keys

このキーはユーザーのキーボードの情報を取得するために使用される。

キー説明
UIKeyboardCenterBeginUserInfoKeyアニメーションの前にキーボードの中心の座標を画面の座標系に変換するためのキー
UIKeyboardCenterEndUserInfoKeyアニメーションの後にキーボードの中心の座標を画面の座標系に変換するためのキー
UIKeyboardBoundsUserInfoKeyキーボードの矩形座標を得るためのキー

通知オブジェクト

※通知のメカニズムに関してはアップルのDeveloperConnectionをご利用ください。

UIWindowDidBecomeVisibleNotification

UIWindowオブジェクトが見えるようになる時に送信される。
この時の通知オブジェクトは表示されたウインドウオブジェクトである。
この通知はuserinfo辞書には含まれない。

UIWindowDidBecomeHiddenNotification

UIWindowオブジェクトが見えなくなる時に送信される。
この時の通知オブジェクトはハイドされたウインドウオブジェクトである。
この通知はuserinfo辞書には含まれない。

UIWindowDidBecomeKeyNotification

ウインドウオブジェクトがキーウインドウになった時に送信される。
この時の通知オブジェクトはキーウインドウになったウインドウオブジェクトである。
この通知はuserinfo辞書には含まれない。

UIWindowDidResignKeyNotification

ウインドウオブジェクトがキーウインドウではなくなった時に送信される。
この時の通知オブジェクトはキーウインドウではなくなったウインドウオブジェクトである。
この通知はuserinfo辞書には含まれない。

UIKeyboardWillShowNotification

ウインドウオブジェクトが描画される前に送信される。通知オブジェクトはnilである。
userinfo辞書からキーボードのサイズや座標を入手するためにkeyboard Notification User Info Keysに記載されているキーが使用される。

UIKeyboardDidShowNotification

ウインドウオブジェクトが描画された後に送信される。通知オブジェクトはnilである。
userinfo辞書からキーボードのサイズや座標を入手するためにkeyboard Notification User Info Keysに記載されているキーが使用される。

UIKeyboardWillHideNotification

ウインドウオブジェクトがハイドされる前に送信される。通知オブジェクトはnilである。
userinfo辞書からキーボードのサイズや座標を入手するためにkeyboard Notification User Info Keysに記載されているキーが使用される。

UIKeyboardDidHideNotification

ウインドウオブジェクトがハイドされた後に送信される。通知オブジェクトはnilである。
userinfo辞書からキーボードのサイズや座標を入手するためにkeyboard Notification User Info Keysに記載されているキーが使用される。


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2012-08-17 (金) 16:27:55 (1919d)