Я надеюсь вставить подвид перед отображаемой клавиатурой. Я использую следующий код:
[self.view bringSubviewToFront: myView];
но подвид не отображается.
Я надеюсь вставить подвид перед отображаемой клавиатурой. Я использую следующий код:
[self.view bringSubviewToFront: myView];
но подвид не отображается.
Я не совсем уверен, что вы ищете, но я думаю, что вы хотите просмотреть «готово» / «возврат» на клавиатуре. Возможно, вы сможете сделать это, выполнив что-то вроде этого (когда появится клавиатура)
UIWindow* tempWindow = [[[UIApplication sharedApplication] windows] objectAtIndex:1];
UIView* keyboard;
for(int i=0; i<[tempWindow.subviews count]; i++)
{
keyboard = [tempWindow.subviews objectAtIndex:i];
// keyboard view found; add the custom button to it
if([[keyboard description] hasPrefix:@"UIKeyboard"] == YES)
[keyboard addSubview:doneButton];
}
Идея bringSubviewToFront
провалилась, потому что она (клавиатура) не является частью вашего приложения.
Кредит Артему из этого вопроса
Вместо того, чтобы использовать этот цикл for для поиска правильного окна, вы можете вместо этого использовать:
UIWindow * window = [UIApplication sharedApplication].windows.lastObject;
[window addSubview:_menuView];
[window bringSubviewToFront:_menuView];
Пока вы добавляете его, когда активна клавиатура, клавиатура всегда будет последним добавленным представлением, и это значительно снижает сложность кода.
@Altaf, префикс, который вы упоминаете в своем коде, не подходит. Вы должны использовать:
if([[keyboard description] hasPrefix:@"<UIPeripheralHostView"] == YES)
См. пример с классами Touchpose для демонстрации касаний в демонстрационных приложениях, которые я модифицировал для отображения анимации на клавиатуре.