对于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的问题。有没有办法让光标在发生这种情况时重置/重绘?
答案 0 :(得分:0)
尝试拨打
[self becomeFirstResponder];
在textFieldDidChange中,在self.font = ....之后不知道它是否有用,但它可能是一个快速的解决方法。