【问题标题】:How to set underline text of UIButton (which has custom localisation in Xcode 6.3)?如何设置 UIButton 的下划线文本(在 Xcode 6.3 中具有自定义本地化)?
【发布时间】:2015-04-30 13:43:51
【问题描述】:

我知道这个问题被问过很多次,但答案最多的是几年前。我希望Xcode 6.3 有一个最简单的解决方案。

我有UIViewController,其中有2 个按钮,必须加下划线。我还使用自定义解决方案来翻译资源(我的语言在应用程序内设置 - 根据规范)。

我看到我可以在Xcode 6.3 中设置属性文本,但在这种情况下,按钮(资源)中的文本不会被翻译。

我尝试将NSMutableAttributedString 设置为文本,但setTitle 方法需要NSString,我有错误。

我看到制作自定义按钮类型有一些答案,但我认为这有点复杂(我只有在 UIViewController 中有这两个按钮)。

还有其他解决办法吗?

【问题讨论】:

    标签: objective-c xcode uibutton


    【解决方案1】:

    我尝试将 NSMutableAttributedString 设置为文本,但 setTitle 方法需要 NSString 并且出现错误。

    因为你调用了错误的方法。你需要setAttributedTitle:forState: 方法,它可以解决这个问题。

    我发现我可以在 Xcode 6.3 中设置属性文本,但在这种情况下,按钮(资源)中的文本不会被翻译。

    通过调用setAttributedTitle:forState:在代码中设置属性文本,以在代码中定义的字符串开头。当你定义那个字符串时,调用 NSLocalizedString。在 Localizable.strings 文件中定义本地化字符串。现在文本翻译了。

    (实际上在 Xcode 6 中,本地化比以往任何时候都容易,因为您所有的本地化材料都可以作为一个统一的 .xliff 文件导出/导入。)

    【讨论】:

    • 我将翻译设置为代码@matt 中的属性文本,但它说setTitle 需要NSString 而不是NSMutableAttributedString ,然后崩溃。好的,可能是我没有正确设置属性文本。我再试一次,我在我的问题中发布了一些代码,10x。
    • 嗨@new2ios。请阅读我对我的答案的最新编辑。它回答了关于setTitle的部分。
    • 我只是想告诉我我在上传评论后阅读了编辑,再次10倍以快速响应。
    • @new2ios 没问题!如果它解决了问题,请接受我的回答(复选标记)。 - 我同意你的观点,很遗憾在 Interface Builder 中配置的属性字符串没有本地化。
    猜你喜欢
    • 1970-01-01
    • 2011-02-07
    • 2021-09-19
    • 1970-01-01
    • 2011-08-04
    • 1970-01-01
    • 2020-11-18
    • 2012-09-07
    • 2020-08-27
    相关资源
    最近更新 更多