主に夜間に使用されるユニバーサル アプリを作成しています。キーボードを表示する必要がありますが、キーボードの明るい色がユーザーを盲目にしたり、暗視を台無しにしたりしたくありません。カスタムキーボードを作成する手間をかけたくないので、キーボードの上に UIView を配置し、アルファ 0.5 などの黒の背景色を指定することで解決できると思いましたが、わかりませんキーボードを覆う UIView を取得する方法を説明します。誰もこれを行う方法を知っていますか? Apple はこれを許可していますか?
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
inputView
UITextFiled/UITextArea (使用されているもの) のプロパティに必要な変更を適用してみてください。
于 2012-01-02T18:38:42.330 に答える