Skip to content

【ユーザサイド追記】iOS5の予測変換バーのせいで下のものが隠れるときの対処法

2011年10月11日

【追記】なんかアクセスが増えてきたので、ユーザサイドの応急対策を書いておきます。

【ユーザサイド】

現状予測変換バーは、漢字変換の必要があるときのみ表示されます。

したがって、キーボードを変換の必要のないもの(USキーボードなどの英字のもの)に変えれば表示されなくなります。
面倒ですが、日本語で打ったあと、送信するときにUSキーボードに変更し送信ボタンを押す、というような自分で対処するしか現状道はないかと思います。

最終的にアプリ提供側がインターフェースの対応をしない限り解決しないのが現実です。

【開発サイド】

ちょっとハマったのでメモっとく。

一番下にツールバーを追加してたんだけど、iOS5でキーボードを出すと変換バーのせいで隠れてしまう。
その対処として、Viewに直接ツールバーを置いておきつつ、UITextViewのinputAccesoryViewにも追加することで表示を確保できます。

inputView.inputAccesoryView = v

みたいな感じに入れます。
英語、日本語になってもきちんと位置調整もしてくれるので便利です。

そして、キーボード変更毎のトリガーが欲しい場合は、

NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];
[nc addObserver:self selector:@selector(keyboardWillChange:) name:UITextInputCurrentInputModeDidChangeNotification object:nil];

を使います。

受け取り側はこんな感じ

- (void)keyboardWillChange:(NSNotification*)aNotification
{
NSLog(@"mode change");
UITextInputMode *tinput = [UITextInputMode currentInputMode];
NSLog(@"mode = %@",[tinput primaryLanguage]);
if ([[tinput primaryLanguage] isEqualToString:@"ja-JP"] ) {
NSLog(@"日本語入力キーボード");
}

else if([[tinput primaryLanguage] isEqualToString:@"en-US"] ){
NSLog(@"英語入力キーボード");
}else{
NSLog(@"ios4");
view_.frame = CGRectMake(0, -8 + 44 + 36, 320, 167);
}
}

ってかんじで受け取れます。

うまいこと組み合わせれば予測変換バーの対処が可能です。

[11/25]inputAccesoryViewは使ってないけど、具体的なソース書きました。

広告

From → iPhone開発

2件のコメント
  1. さる permalink

    これ、まさにこれなんですけど、どういう意味ですか?
    もしかして脱獄ようですかね?
    脱獄しないと、予測変換バーは隠れてくれないのでしょうか?
    Facebookのメッセージを返信に至っては完璧に入力エリアが隠れてしまうので送信すら出来ません。

    • 残念ながら、ココに書いている対処というのは、アプリを作る人が行う対処であって、閲覧側の対処ではないんです。
      隠れてしまう症状は現状、アプリ側がアップグレードをしてくれない限りには解決しないかと思います。

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。