затемнение клавиатуры iPhone / iPad - PullRequest
4 голосов
/ 02 января 2012

Я пишу универсальное приложение, которое будет использоваться в основном ночью.Мне нужно будет отобразить клавиатуру, но я не хочу, чтобы светлые цвета клавиатуры ослепляли пользователя и / или портили его ночное видение.Я не хочу, чтобы мне приходилось сталкиваться с трудностями при создании пользовательской клавиатуры, поэтому я подумал, что решение может заключаться в том, чтобы поместить UIView поверх клавиатуры и задать для него черный фон с альфа-значением 0,5 или чем-то другим, однако я не могу понятьКак получить UIView для покрытия клавиатуры.Кто-нибудь знает как это сделать?Apple разрешает это?

Ответы [ 2 ]

6 голосов
/ 02 января 2012

Клавиатура найдена как подпредставление нового окна, которое добавляется, когда оно появляется.Нахождение его немного хакерским и хрупким (потребуется проверка на новых версиях iOS, как это было раньше), но оно работает и разрешено (я делаю это точно для ночного режима в приложении, которое находится в магазине приложений).

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.

Вид маски, как вы говорите, просто вид с черным фоном и некоторой прозрачностью.Вы также можете использовать стиль клавиатуры оповещения, который дает черное пространство между клавишами.

Этот метод не предотвращает мигание маленьких клавиш (большие клавиши, которые появляются при нажатии на клавишу), к сожалению, на полную яркость.

0 голосов
/ 02 января 2012

попробуйте применить требуемые изменения к inputView свойству UITextFiled / UITextArea (которое используется).

...