iPhone4 と iPad に iOS 5 Beta 2をインストールしました。
今回の iOS インストールは、いまま X-CodeのOrganizer を使って ipswファイルをインストールしていましたが、今回はこの方法でインストールすると端末がブラックアウト状態となり起動できない障害が発生しました。
これは私の端末だけでなく世界的に起きている様です。
この回避方法は iTunes の Restore ボタンを押すと時にキーボードの[option]キーを押した状態でクリックすると ipswファイルの選択ができ、iOS 5 Beta 2のインストール及びバックアップからの復元ができました。
日本語入力は安定してきている様です。
iOS 5では候補表示の表示方法は変更され、キーボードの直ぐ上に候補が表示されるため、キーボードの描画高さが候補表示の分、高くなっています。
候補表示右端の矢印をタッチすると候補画面に切り替わります。
キーボードのところを指で下にスライドするとキーボードが消え、全画面の候補表示になります。
候補の表示は「標準」、「読み」、「部首」とあります。
確かに候補の選択は快適になった様に思いますが・・・
この候補表示の新仕様により、いくつかのアプリでは候補表示に隠れてしまい操作ができないようなことも起きています。
私の開発したアプリもその被害に遭ってしまったので、キーボードの通知イベントをキャッチしてViewの表示位置を調整する様に修正しました。
修正したコードはこんな感じです。
入力Viewにキーボード通知のアクション設定
// キーボード表示時の通知イベント処理の定義
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWasShown:)
name:UIKeyboardDidShowNotification object:nil];
// キーボード非表示時の通知イベント処理の定義
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWasHidden:)
name:UIKeyboardDidHideNotification object:nil];
キーボード通知アクションでの入力Viewの表示位置変更処理
// キーボード表示時にサイズを取得
// UIKeyboardDidShowNotificationが送信されたときに呼び出される
- (void)keyboardWasShown:(NSNotification*)aNotification
{
// アプリケーション表示領域の取得
CGRect mScreen = [[UIScreen mainScreen] applicationFrame];
int windowWidth = mScreen.size.width;
int windowHeight = mScreen.size.height;
// グループ選択Viewの表示位置設定して見えなくする
GroupSelectView.frame = CGRectMake(0, 500, windowWidth, 260);
// キーボードのサイズを取得する
NSDictionary* info = [aNotification userInfo];
NSValue* aValue = [info objectForKey:UIKeyboardFrameEndUserInfoKey ];
CGSize keyboardSize = [aValue CGRectValue].size;
int KeyHeight = keyboardSize.height;
int InputHeight = self.ConfigInputBar.frame.size.height;
int InputWidth = self.ConfigInputBar.frame.size.width;
int naviBarHeight = self.navigationController.navigationBar.frame.size.height;
int InputNewTop = naviBarHeight+(windowHeight-(KeyHeight+InputHeight+naviBarHeight));
// ツールバーの位置補正する
ConfigInputBar.frame = CGRectMake(0, InputNewTop, InputWidth, InputHeight);
}
// キーボードが消えた時のView移動処理
// UIKeyboardDidHideNotificationが送信されたときに呼び出される
- (void)keyboardWasHidden:(NSNotification*)aNotification
{
int InputHeight = self.ConfigInputBar.frame.size.height;
int InputWidth = self.ConfigInputBar.frame.size.width;
// ツールバーの位置補正する
int naviBarHeight = self.navigationController.navigationBar.frame.size.height;
ConfigInputBar.frame = CGRectMake(0, naviBarHeight, InputWidth, InputHeight);
}
ちょっと嬉しい改善として SMS/MMSの画面で一旦入力状態(キーボード表示状態)になるとキーボードを消すことができませんでしたが、メッセージビューを指で下にスライドすることでキーボードが隠れる様になりました。
これで画面一杯にメッセージが表示できます。
iPad版はキーボードの分離機能が少し変更されている様です。
その他はロック画面での通知表示も変更されており、発生タイミングの通知表示は画面中央に大きめのフォントで表示され、その後、Beta 1と同様の通知一覧の表示サイズに変わる様になっています。
iPhone4では SMS/MMS で Softbank絵文字は iPhone以外のSoftbank携帯に送信すると化けてしまう不具合はまだ直っていません。受信は問題ないのですが。
iMessage経由でiPod TouchやiPad に送ると問題無いので、Softbankの対応なのかなぁ。