2

我从 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

4 回答 4

3

这是一个iOS8错误。

您可以在 Apple 的 Contacts App 中的模拟器上重现它。

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

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

于 2014-09-29T06:56:15.840 回答
3

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

于 2014-09-14T15:55:01.560 回答
1

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

您可能需要确保您的 inputAccessoryView 实现

-(CGSize)intrinsicContentSize

例如:

@implementation InputAccessory_View
// .. your code ...
-(CGSize)intrinsicContentSize{
    return self.frame.size;
}
@end
于 2014-10-03T04:42:50.210 回答
0

抱歉,我误读了该项目。我被 iOS8 的键盘问题搞得焦头烂额。

于 2014-11-07T13:45:50.627 回答