我希望在显示的键盘前插入子视图。我使用以下代码:
[self.view bringSubviewToFront: myView];
但子视图不显示。
答案 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)
而不是使用此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类显示演示应用程序的触摸,我修改后通过键盘显示动画。