为什么我的UILabels文本会自动大写?

时间:2018-10-10 05:51:59

标签: objective-c xcode uilabel

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

Settings

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

SETTINGS

问题是为什么?我的情节提要板未本地化。我没有为那些UILabel做任何其他设置。这是一个清晰的UILabel类,没有任何子类或类别。

2 个答案:

答案 0 :(得分:1)

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

尝试一下:

Objective-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中:

This is where you can change the settings for keyboard in MAC

在iOS中:

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

This is where you can change the settings for keyboard in iphone

答案 1 :(得分:1)

那是因为情节提要板的本地化,所以我问这个问题时并没有意识到。您必须将您的情节提要板本地化为每种受支持的语言,或者完全从情节提要板中删除本地化。

流程如此。

  1. 您在某个故事板上的ViewController上有一个标签
  2. 您为此标签设置了一些文字

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

  4. b。如果您的情节提要板已本地化,但在某些本地化中您没有适当的资源,它将自动为该字符串大写。