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);
}

そして、2番目の関数についても同じです。

ただし、既存のメソッド、またはカテゴリを使用する代わりにサブクラスと競合しないように、関数の名前を変更する必要があります。

于 2012-10-21T23:38:33.583 に答える