Как разместить подпредставление перед клавиатурой? - PullRequest
0 голосов
/ 26 марта 2012

Я надеюсь вставить подпредставление перед отображаемой клавиатурой.Я использую следующий код:

[self.view bringSubviewToFront: myView];

, но подпредставление не отображается.

Ответы [ 3 ]

2 голосов
/ 26 марта 2012

Я не совсем уверен, что вы ищете, но я думаю, вы хотите, чтобы вы подписали «готово» / «возврат» через клавиатуру. Возможно, вы сможете сделать это, выполнив что-то вроде этого (когда появится клавиатура)

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 не удалась, потому что она (клавиатура) не является подпредставлением вашего приложения.

0 голосов
/ 17 октября 2014

@ Альтаф, префикс, который вы упоминаете в своем коде, не очень хороший. Вы должны использовать:

if([[keyboard description] hasPrefix:@"<UIPeripheralHostView"] == YES)

См. Пример с классами Touchpose для отображения касаний демонстрационных приложений, которые я изменил для отображения анимации на клавиатуре.

0 голосов
/ 26 июня 2014

Кредит Артему от этот вопрос

Вместо того, чтобы использовать этот цикл для поиска правильного окна, вы можете вместо этого использовать:

UIWindow * window = [UIApplication sharedApplication].windows.lastObject;

[window addSubview:_menuView];
[window bringSubviewToFront:_menuView];

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

...