在iOS 8模拟器上不显示InputAccessoryView

时间:2014-09-14 15:25:06

标签: ios8 simulator inputaccessoryview

我从iOS 5开始拥有iOS应用程序,它包含一个自定义的UITextView,它使用自己的inputView和inputAccessoryView。它适用于iOS 7模拟器,当它成为FirstResponse时,无论是inputView还是inputAccessoryView都显示,但是使用iOS 8模拟器,只显示相关的inputView,而inputAccessoryView则不显示。

我正在使用Xcode 6 GM种子

HeInput_TextView.m

- (void)awakeFromNib
{

   self.text = @"";

   heKeyboard4x5 = [[HeKeyboard_ViewController alloc] init]; 
   inputAccessoryVC = [[InputAccessory_ViewController alloc] init]; 

   self.inputView = heKeyboard4x5.view;
   self.inputAccessoryView = inputAccessoryVC.view;
}

它是iOS 8模拟器中的错误还是iOS 8的更改?

编辑:

我找到了有关此问题的更多信息。

这个问题发生在基于页面的应用程序中,如果在UIPageViewController的页面中有UITextView,那么UITextView.inputAccessoryView不会在iOS 8模拟器上显示,而是在iOS 7.1模拟器中显示。

我创建了两个项目:“基于单一视图的应用程序”和“基于页面的应用程序”,并确认问题如上所述发生。

4 个答案:

答案 0 :(得分:3)

这是xcode 6中模拟器的新行为。查看您的自定义附件视图,甚至默认尝试取消选中硬件 - >模拟器 - >连接harware键盘。

答案 1 :(得分:3)

这是一个iOS8错误。

您可以在Apple的联系人应用程序中的模拟器上重现它。

添加新联系人并向下滚动到“添加日期”。

同样的问题。一位同事提出了一个苹果rdar。

答案 2 :(得分:1)

我发现iOS8中的视图配件不使用视图的框架来偏移它们在InputView上方的高度(甚至是默认的软件键盘)。

您可能需要确保inputAccessoryView实现

-(CGSize)intrinsicContentSize

例如:

@implementation InputAccessory_View
// .. your code ...
-(CGSize)intrinsicContentSize{
    return self.frame.size;
}
@end

答案 3 :(得分:0)

道歉,我误读了这个项目。 iOS8的键盘问题让我感到很沮丧。