0

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

[self.view bringSubviewToFront: myView];

但子视图不显示。

4

3 回答 3

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

于 2012-03-26T11:20:36.000 回答
0

从这个问题归功于Artyom

而不是使用这个 for 循环来找到正确的窗口,您可以使用:

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

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

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

于 2014-06-25T21:22:40.450 回答
0

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

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

查看一个示例,使用 Touchpose 类显示演示应用程序的触摸,我对其进行了修改以在键盘上显示动画。

于 2014-10-17T16:20:52.880 回答