如何在键盘前放置子视图?

时间:2012-03-26 10:45:57

标签: iphone iphone-softkeyboard

我希望在显示的键盘前插入子视图。我使用以下代码:

[self.view bringSubviewToFront: myView];

但子视图不显示。

3 个答案:

答案 0 :(得分:2)

我不确定你在寻找什么,但我最好的猜测是你要在键盘上查看“完成”/“返回”。 你可以通过做这样的事情(当键盘出现时)来做到这一点

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提示失败,因为它(键盘)不是您应用的子视图。

答案 1 :(得分:0)

来自this question

的Artyom

而不是使用此for循环来找到正确的窗口,而不是使用:

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

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

只要您在键盘处于活动状态时添加它,键盘将始终是最后添加的视图,并且会大大降低代码复杂性。

答案 2 :(得分:0)

@Altaf,你在代码中提到的前缀不是好的。你应该使用:

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

See an example,Touchpose类显示演示应用程序的触摸,我修改后通过键盘显示动画。