【问题标题】:Why my UILabels texts become auto capitalized?为什么我的 UILabels 文本会自动大写?
【发布时间】:2019-03-14 23:07:45
【问题描述】:

我在 IB 中创建了一些 UILabel。像这样在界面生成器中设置文本

Settings

当我启动应用程序时,文本变为

SETTINGS

问题是为什么?我的 Storyboard 未本地化。我没有为这些 UILabel 做任何额外的设置。这是一个明确的 UILabel 类,没有任何子类或类别。

【问题讨论】:

    标签: objective-c xcode uilabel


    【解决方案1】:

    可能启用了自动更正自动大写

    试试这个:

    目标-C:

    -(void)textFieldDidBeginEditing:(UITextField *)textField
    {
        textField.autocorrectionType = FALSE; // or use  UITextAutocorrectionTypeNo
        textField.autocapitalizationType = UITextAutocapitalizationTypeNone;
    
    }
    

    斯威夫特:

    func textFieldDidBeginEditing(textfield : UITextField)
    {
        textField.autocorrectionType = .No
        textField.autocapitalizationType = .None
        textField.spellCheckingType = .No
    }
    

    斯威夫特 3:

      func textFieldDidBeginEditing(_ textField : UITextField)
    {
        textField.autocorrectionType = .no
        textField.autocapitalizationType = .none
        textField.spellCheckingType = .no
    }
    

    如果它仍然不起作用,请检查您的 Mac 和手机是否已打开自动大写。

    在 Mac 中:

    在 iOS 中:

    设置>常规>键盘>自动大写

    【讨论】:

    • 感谢您的回复,但不是。忘记了这个问题。我会添加答案。
    【解决方案2】:

    那是因为故事板的本地化,当我问这个问题时我没有意识到这一点。您必须在每种支持的语言上本地化您的故事板,或者完全从故事板中删除本地化。

    所以流程是这样的。

    1. 您在某些情节提要的 ViewController 上有一个标签
    2. 您为此标签设置了一些文本

    3. 一个。如果您的情节提要未本地化,一切都会按预期进行

    4. b.如果您的故事板已本地化,但在某些本地化中您没有适当的资源,它将自动大写此字符串。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-16
      • 1970-01-01
      • 1970-01-01
      • 2013-11-25
      • 1970-01-01
      相关资源
      最近更新 更多