UITextField 在编辑时更改字体

Posted

技术标签:

【中文标题】UITextField 在编辑时更改字体【英文标题】:UITextField changes font while editing 【发布时间】:2012-03-10 16:42:31 【问题描述】:

我遇到了和这里一样的问题UITextField's custom font changes while in edit mode 并且真的可以用一个解决方案来做。

我有 4 个 UITextField,我在 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;

如果我使用系统字体,那么文本字段会正常工作,所以可能与这个字体文件有关?

【问题讨论】:

你的自定义字体名称是什么???? font is 2Dumb.ttf 我只是想更改它,但它似乎被缓存在某处,因为更改名称仍会加载旧文件。也许我会尝试重新启动。 我已经从 Xcode 中删除了该字体,将其重命名为“Dumb.ttf”并将其放回 Xcode。将我的代码 font= 更改为 Dumb 并在 plist 中将其重命名,但它不会加载字体。任何仍然说 2Dumb 的代码行都会加载字体。非常令人沮丧。 在你的问题中输入一些代码... 没有太多代码可看,但我已经添加了。 【参考方案1】:

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

【讨论】:

感谢您抽出宝贵时间进行测试。我将不得不尝试找到类似的字体。我想知道字体可能有什么不同使其无法正常工作。 也许可以试试其他字体。我使用 www.WebpagePublicity.com/free-fonts/a/Aliens.ttf 进行了测试,它按预期工作如果它不适合您,那么您可能还有其他问题。【参考方案2】:

你使用的标签(lbl1,lbl2,lbl3)是自定义的还是从xib文件中设置的?

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

【讨论】:

将文本字段(lbl1、lbl2 等)添加到情节提要中,然后在 ViewDidLoad 中更改字体。 在情节提要中更改您想要的任何类型的字体(lbl1、lbl2 等)。以前也发生在我身上。我已经更改了我想要的 xib 文件中的字体名称。它奏效了…… 但是自定义字体没有出现在界面生成器中。 然后下载字体,并将其添加到您的 xib 文件中。 我已将赏金奖励给您,感谢您为我提供的实时帮助。尽管从未找到解决方案。我已经向 Apple 提交了错误报告。谢谢【参考方案3】:

编辑时可以重新设置字体,编辑时字体不变。

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


【讨论】:

【参考方案4】:

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

[[UILabel appearance] setFont:MYFONT];

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

【讨论】:

以上是关于UITextField 在编辑时更改字体的主要内容,如果未能解决你的问题,请参考以下文章

使用自定义 UITableViewCell 时在编辑之前更改 UITextField 文本

编辑后 UITextField 上的 Xcode 5 字体大小错误

键盘出现时如何滚动 UIScrollView?

编辑时如何更改 UITextField

如果我更改 UITextField 的外观,UIBarButtomItem tintColor 不起作用

编辑时如何更改 UITextField