使用带有 UITextView 的特定键盘的错误

Posted

技术标签:

【中文标题】使用带有 UITextView 的特定键盘的错误【英文标题】:Bug using specific keyboard with UITextView 【发布时间】:2012-11-12 22:19:08 【问题描述】:

我使用“单一视图”应用程序模板启动了一个 Xcode 项目,并在 viewDidLoad 中向模板创建的 ViewController 类添加了两行:

UITextView *textView = [[UITextView alloc] initWithFrame:CGRectInset(self.view.bounds, 10, 10)];
[self.view addSubview:textView];

在模拟器中,我启用了“简体中文”“笔画”键盘。

当我使用 UITextView 时,切换到此键盘,并触摸 ^_^ 键,控制台出现以下错误:

<Error>: CGContextSaveGState: invalid context 0x0
<Error>: CGContextDrawLinearGradient: invalid context 0x0
<Error>: CGContextSetFillColorWithColor: invalid context 0x0
<Error>: CGContextFillRects: invalid context 0x0
<Error>: CGContextFillRects: invalid context 0x0
<Error>: CGContextSetFillColorWithColor: invalid context 0x0
<Error>: CGContextFillRects: invalid context 0x0
<Error>: CGContextSaveGState: invalid context 0x0
<Error>: CGContextDrawLinearGradient: invalid context 0x0
<Error>: CGContextSetFillColorWithColor: invalid context 0x0
<Error>: CGContextFillRects: invalid context 0x0
<Error>: CGContextFillRects: invalid context 0x0
<Error>: CGContextSetFillColorWithColor: invalid context 0x0
<Error>: CGContextFillRects: invalid context 0x0

这是一个错误吗?我应该担心吗?

【问题讨论】:

您是否在 drawRect: 之外与 Core Graphics 进行交互? 不 - 除了添加这两行代码之外,我什么也没做。 【参考方案1】:

我已经在 ios 6.0 模拟器和运行 iOS 6.0.1 的 iPhone 4S 上重现了该错误,但在 iOS 5.0 模拟器中并没有发生。这是 iOS 6 中的一个错误。您应该在 http://bugreport.apple.com 打开一个错误报告。

也就是说,它似乎并没有特别有害,所以我不会担心。

【讨论】:

谢谢。今天两行代码和两个问题。至少有两个很好的答案。 不幸的是,这可能与更严重的错误有关。开始使用中文拼音键盘输入并弹出建议。现在按下电源按钮关闭屏幕 - 应用程序崩溃。这是 iOS 6 的新功能,也会影响使用日语输入的用户。【参考方案2】:

当我启用“简体中文”键盘时,它也发生在 iOS 7.0.3 模拟器中。

但在iOS 7.1模拟器和iOS 8模拟器中消失了。

【讨论】:

以上是关于使用带有 UITextView 的特定键盘的错误的主要内容,如果未能解决你的问题,请参考以下文章

解除键盘后,带有所选文本的UITextView不响应触摸

带有 UITextView 的 iOS 7 UITableViewCell 隐藏在键盘后面

当键盘出现时,带有大单元格的 UITableViewController 会崩溃,隐藏 UITextView

iPad 上带有 UITextView 的 InputAccessoryView

当通过点击背景关闭 UITextView 的键盘时,我在 didSelectRowAt 中得到错误的 indexPath

当键盘可见时如何使 UITextView 一直滚动到底部