Клавиатура найдена как подпредставление нового окна, которое добавляется, когда оно появляется.Нахождение его немного хакерским и хрупким (потребуется проверка на новых версиях 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.
Вид маски, как вы говорите, просто вид с черным фоном и некоторой прозрачностью.Вы также можете использовать стиль клавиатуры оповещения, который дает черное пространство между клавишами.
Этот метод не предотвращает мигание маленьких клавиш (большие клавиши, которые появляются при нажатии на клавишу), к сожалению, на полную яркость.