为什么我的UITextField的字体在编辑时会改变?

时间:2011-05-11 10:15:27

标签: iphone cocoa-touch uitextfield

我的UITextField字体在编辑时变得更亮,而在编辑完成时变粗体。这些图像应说明问题:

Editing Not Editing

任何人都可以解释为什么会这样,以及如何阻止它?

这是我得到的所有代码 - 首先是我的UITextField子类(只是添加边距):

@interface RLTextField : UITextField {    
}
@end

@implementation RLTextField

- (CGRect)editingRectForBounds:(CGRect)bounds
{
    CGRect editingRect = CGRectMake(bounds.origin.x+35, bounds.origin.y-5, bounds.size.width, bounds.size.height);
    return editingRect;
}

- (CGRect)textRectForBounds:(CGRect)bounds
{
    CGRect editingRect = CGRectMake(bounds.origin.x+35, bounds.origin.y-5, bounds.size.width, bounds.size.height);
    return editingRect;
}
@end

然后在我的viewController中实际添加的地方:

- (void)viewDidLoad
{   
    CGRect noteTitleTextFrame  = CGRectMake(self.view.bounds.origin.x, 
                                            self.view.bounds.origin.y+10, 
                                            self.view.bounds.size.width, 
                                            44);
    RLTextField *textField = [[RLTextField alloc] initWithFrame:noteTitleTextFrame];
    self.nameTextField = textField; [textField release];
    self.nameTextField.delegate = self;
    self.nameTextField.borderStyle = UITextBorderStyleNone;    
    self.nameTextField.contentVerticalAlignment = UIControlContentVerticalAlignmentBottom;
    self.nameTextField.font = [UIFont fontWithName:@"Courier" size:21];
    [self.view addSubview:self.nameTextField]; 
}

1 个答案:

答案 0 :(得分:4)

检查了你的代码......只有一个单词 WTF ....!
我不知道这有什么问题,但有一个解决方案,那就是

self.nameTextField.font = [UIFont fontWithName:@"Courier New" size:21];


只需更改字体名称即可。这将工作..欢呼:)
顺便说一句,你可能发现了一个错误,或者可能不是这就是为什么苹果增加了“Courier New”。
我不知道......