4

主に夜間に使用されるユニバーサル アプリを作成しています。キーボードを表示する必要がありますが、キーボードの明るい色がユーザーを盲目にしたり、暗視を台無しにしたりしたくありません。カスタムキーボードを作成する手間をかけたくないので、キーボードの上に UIView を配置し、アルファ 0.5 などの黒の背景色を指定することで解決できると思いましたが、わかりませんキーボードを覆う UIView を取得する方法を説明します。誰もこれを行う方法を知っていますか? Apple はこれを許可していますか?

4

2 に答える 2

6

キーボードは、表示時に追加される新しいウィンドウのサブビューとして検出されます。それを見つけるのは少しハックで壊れやすいです(以前に変更されたため、新しいiOSバージョンで確認する必要があります)が、機能し、許可されています(App Storeにあるアプリのナイトモードで正確にこれを行います) .

UIWindow* tempWindow = [[[UIApplication sharedApplication] windows] objectAtIndex:1]; // This assumes you aren't adding any new windows yourself

for(UIView *keyboard in tempWindow.subviews) 
{
    if([[keyboard description] hasPrefix:@"<UIPeripheralHost"] == YES) // This was different in an earlier version of iOS, and may well change again in the future!
    {
        [keyboard addSubview:maskView];
        break;
    }
}

これは、オブジェクトに応答するメソッド内で行われUIKeyboardDidShowNotificationます。iPad では試していません。これは iPhone のコードのみです。

マスク ビューは、あなたが言うように、黒の背景と透明度を備えた単純なビューです。キーの間に黒いスペースを入れるアラート キーボード スタイルを使用することもできます。

残念ながら、この方法では、小さなキーの点滅 (キーをタップするとポップアップする大きなキー) が最大の明るさになるのを防ぐことはできません。

于 2012-01-02T19:27:49.173 に答える
0

inputViewUITextFiled/UITextArea (使用されているもの) のプロパティに必要な変更を適用してみてください。

于 2012-01-02T18:38:42.330 に答える