UITextField changes font while editing

感情迁移 提交于 2019-11-30 04:06:16

问题


I am suffering the same problem as here UITextField's custom font changes while in edit mode and could really do with a solution.

I have 4 UITextFields that I assign custom fonts in ViewDidLoad. This works and they look great, however when clicking a field to edit the text the font changes back to default text and when resignedfirstresponder the custom font comes back.

- (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;

If I use system fonts, then the text field works as it should, so there must be something to do with this font file maybe?


回答1:


The lable (lbl1,lbl2,lbl3) which you have used are custom or is it set from xib file?

I doubt the font it is changing is due to font set in Xib file.




回答2:


I have found that when I'm setting the UILabel appearance anywhere in the code:

[[UILabel appearance] setFont:MYFONT];

Changing UITextField font only applies to editing text, and not to the text shown in textfield when user is not editing it.

Hope this helps




回答3:


I have downloaded that font and tried it in an iPhone app. I also downloaded some other fonts from the internet and tried them as well. I also tried some Mac fonts such as Chalkduster. I also tried 3Dumb. The results every font I tried EXCEPT 2Dumb and 3Dumb worked. Solution: Use another font.




回答4:


You can set the font again when editing, the font will be the same when editing.

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

}


来源:https://stackoverflow.com/questions/9359479/uitextfield-changes-font-while-editing

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!