为什么自动更正弹出窗口没有放在我的文本上?

时间:2014-04-15 02:13:49

标签: ios objective-c

我正在使用UITextView开发应用以接受用户输入。出于某种原因,自动纠正弹出窗口未正确定位在正在纠正的单词上;它在屏幕外。

这是Spark Inspector的屏幕截图,显示屏幕外的弹出窗口:

A keyboard with a UITextView above it, showing a misspelled word and an auto-correct pop-up just off screen

弹出窗口出现在屏幕右边缘的几个像素内(x坐标为320ish),无论UITextView出现在哪里。 y坐标通常是正确的(即,弹出窗口垂直对齐,但不是水平对齐)。

我已经确认我的所有观看都没有应用任何转换,并且该应用仅支持纵向模式。救命啊!

1 个答案:

答案 0 :(得分:0)

问题是由项目中其他地方的类别方法引起的:

@implementation UIView (VFrameManipulation)

- (void)setSize:(CGSize)newSize
{
    self.frame = CGRectMake(self.frame.origin.y,
                            self.frame.origin.y,
                            newSize.width,
                            newSize.height);
}

@end

(请注意错误?)

显然UIView有一个名为-setSize的私有方法,这个类别正在用一个错误版本替换它。