我希望在显示的键盘前插入子视图。我正在使用以下代码:
[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
想法失败了,因为它(键盘)不是您的应用程序的子视图。
从这个问题归功于Artyom
而不是使用这个 for 循环来找到正确的窗口,您可以使用:
UIWindow * window = [UIApplication sharedApplication].windows.lastObject;
[window addSubview:_menuView];
[window bringSubviewToFront:_menuView];
只要您在键盘处于活动状态时添加它,那么键盘将始终是添加的最后一个视图,并且大大降低了代码复杂性。
@Altaf,您在代码中提到的前缀不是好前缀。你应该使用:
if([[keyboard description] hasPrefix:@"<UIPeripheralHostView"] == YES)
查看一个示例,使用 Touchpose 类显示演示应用程序的触摸,我对其进行了修改以在键盘上显示动画。