Iphone UIView没有出现在键盘上?

Iphone UIView没有出现在键盘上?,iphone,objective-c,iphone-softkeyboard,Iphone,Objective C,Iphone Softkeyboard,我有以下代码: JMenuController *menuController = [[JMenuController alloc] init]; NSArray *buttonsArray = [NSArray arrayWithObjects:@"From Libary", @"Take Photo or Video", nil]; [menuController showMenuWithTitle:@"Add Media" ButtonTitles:buttonsArray

我有以下代码:

JMenuController *menuController = [[JMenuController alloc] init];
    NSArray *buttonsArray = [NSArray arrayWithObjects:@"From Libary", @"Take Photo or Video", nil];
    [menuController showMenuWithTitle:@"Add Media" ButtonTitles:buttonsArray animated:YES];
    self.currentMenuType = JCreateMenuTypeNewMedia;

    [[[[UIApplication sharedApplication] delegate] window] addSubview:menuController];

问题是,视图出现在键盘下方,而键盘已经在屏幕上。如何修复此问题?

键盘存在于其自己的窗口中。要将内容放在键盘上,您必须将内容放在键盘窗口中(这是不受支持的行为),或者创建另一个窗口并将其放在键盘上。

好的,我花了一段时间才明白您想要做什么。你有两个选择

  • 退出键盘并用按钮显示视图

  • 使用UIActionSheet在键盘上显示按钮,就像按下相机向某人发送图片时在Messages应用程序中显示的那样

我建议晚一点

编辑:
查看自定义UIActionSheet的这一点

在键盘顶部显示某些视图的最简单方法是将该视图放在
UIWindow
中,您可以为该窗口将
windowLevel
属性设置为
UIWindowLevelAlert
。比如:

UIView *myView = [[UIView alloc] initWithFrame:rect];

UIWindow *myWindow = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
myWindow.windowLevel = UIWindowLevelAlert;
[myWindow addSubview:myView];

[myWindow makeKeyAndVisible];
如果您使用的是ARC,请确保保留对myWindow的强引用。否则,它将自动释放,因此不会添加到应用程序窗口中


(这就是UIActionSheet和UIAlertView在内部的工作方式。当其中一个可见时,请查看[UIApplication sharedApplication]。windows,您将看到它们创建的窗口的windowLevel设置为UIWindowLevel Alert。)

我基本上已经创建了自己的操作表,而不是使用默认的操作表。所以我想复制UIActionSheet的行为。有一段时间我很害怕,我以为Oracle引入了“UISwing”!谢谢然后我还需要通过
[mywindowsethidden:YES]隐藏它谢谢!这对我来说很有效,但一旦我放弃了这个视图,我就无法与我的UI交互。键盘上也有starange行为。我的焦点仍然在UItextField&如果我按任意键,文本字段中就没有变化,但如果我按backspace,我的文本就会被删除。