0

我有 UITextField 类别。使用此类别 MFMailComposeViewController 将不起作用,当我呈现 MFMailComposeViewController 并出现错误时它会崩溃

Terminating app due to uncaught exception 'CALayerInvalidGeometry', reason: 'CALayer position contains NaN: [nan 24.5]'

@implementation UITextField (SomeCategory)

- (CGRect)textRectForBounds:(CGRect)bounds {
    return CGRectInset( bounds , 30 , 5);
}
- (CGRect)editingRectForBounds:(CGRect)bounds {
    return CGRectInset( bounds , 30 , 5);
}

@end

有人知道如何解决这个问题吗?

4

1 回答 1

0

尝试:

- (CGRect)textRectForBounds:(CGRect)bounds {
    if (CGRectIsNull(bounds) || CGRectIsInfinite(bounds)) {
        return bounds;
    }
    return CGRectInset( bounds , 30 , 5);
}

你的第二个功能也是如此。

不过,您应该重命名函数,以免它们与现有方法或子类冲突,而不是使用类别。

于 2012-10-21T23:38:33.583 回答