UITextField在编辑时更改字体

时间:2012-02-20 10:17:44

标签: iphone ios fonts uitextfield

我遇到的问题与UITextField's custom font changes while in edit mode相同 并且可以真正做到解决方案。

我有4个UITextFields,我在ViewDidLoad中分配自定义字体。 这很有效,但是当它们单击一个字段来编辑文本时,字体会变回默认文本,当resignedfirstresponder返回时,自定义字体会回来。

- (void)viewDidLoad
{
    [super viewDidLoad];
    {

        UIFont *twoDumb = [UIFont fontWithName:@"Dumb" size:20.f];

        lbl1.font = twoDumb;
        broughtForward.font = twoDumb;
        lbl2.font = [UIFont fontWithName:@"Dumb" size:24.f];
        amountTextfield.font = twoDumb;
        lbl3.font = twoDumb;

如果我使用系统字体,那么文本字段可以正常工作,因此必须与此字体文件有关?

4 个答案:

答案 0 :(得分:3)

我发现当我在代码中的任何位置设置UILabel外观时:

[[UILabel appearance] setFont:MYFONT];

更改UITextField字体仅适用于编辑文本,而不适用于用户未编辑文本时显示的文本。

希望这有帮助

答案 1 :(得分:2)

我已下载该字体并在iPhone应用中尝试过。我还从互联网上下载了一些其他字体并尝试了它们。我也尝试了一些Mac字体,如Chalkduster。我也试过3Dumb。结果我尝试的每种字体除了2Dumb和3Dumb工作。解决方案:使用其他字体。

答案 2 :(得分:1)

enter image description here您使用的标签(lbl1,lbl2,lbl3)是自定义的还是从xib文件设置的?

我怀疑它正在改变的字体是由于在Xib文件中设置了字体

enter image description here

答案 3 :(得分:1)

您可以在编辑时再次设置字体,编辑时字体将相同。

- (void)textFieldDidBeginEditing:(UITextField *)textField {
    textField.font = customizedFont; //The font you want to use no matter editing/no editing

}