iOS 6.x:动态更改UITextField字体属性导致光标丢失

时间:2013-05-02 22:44:43

标签: ios objective-c ios6 uitextfield

对于iOS 6.x,如果您要求收到UITextFieldTextDidChangeNotification的通知,然后调整该通知中的字体大小,则光标会混淆并将自己绘制在错误的位置。

@implementation MyTextField

- (id)initWithCoder:(NSCoder*)coder
{
    if (self = [super initWithCoder:coder])
    {
        [NSNotificationCenter.defaultCenter addObserver:self
                                               selector:@selector(textFieldDidChange:)
                                                   name:UITextFieldTextDidChangeNotification
                                                 object:self];
    }

    return self;
}

- (void)textFieldDidChange:(NSNotification *)notification
{
    self.font = [UIFont systemFontOfSize:20 - self.text.length];
}

@end

这不是iOS 5.x的问题。有没有办法让光标在发生这种情况时重置/重绘?

1 个答案:

答案 0 :(得分:0)

尝试拨打

[self becomeFirstResponder];

在textFieldDidChange中,在self.font = ....之后不知道它是否有用,但它可能是一个快速的解决方法。