我从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模拟器中显示。
我创建了两个项目:“基于单一视图的应用程序”和“基于页面的应用程序”,并确认问题如上所述发生。
答案 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的键盘问题让我感到很沮丧。