【问题标题】:Autocapitalization of words does not work in UITextView单词的自动大写在 UITextView 中不起作用
【发布时间】:2015-01-05 23:37:31
【问题描述】:

我有一个需要自动大写单词的UITextView。但是,当我调用这些方法中的任何一个时,视图都没有响应。

[self.fullNameTextView setAutocapitalizationType:UITextAutocapitalizationTypeWords];
self.fullNameTextView.autocapitalizationType = UITextAutocapitalizationTypeWords;

这是 iOS 8.1 中的错误吗?

【问题讨论】:

  • 您是否在尝试设置自动大写类型时验证了self.fullNameTextView 不是nil
  • 只是为了验证,您尝试将用户输入的文本大写,而不是您以编程方式设置的文本,对吗?它只会将用户键入的文本大写。
  • 是的,我想将用户输入的单词自动大写。

标签: ios cocoa-touch uitextview


【解决方案1】:

我遇到了同样的问题,并且能够通过将我的键盘类型设置回默认值来解决它:

【讨论】:

  • 这有点愚蠢,但谢谢你让我知道。我之前已经有点怀疑了,但由于某种原因没有这样测试过。
【解决方案2】:

请检查您的设备设置 → 常规 → 键盘 → 自动大写是否已打开。

【讨论】:

  • 哇,我永远不会想到这件事,在我的情况下,这是一个愚蠢的问题。谢谢你的回答!
【解决方案3】:

两种方法都有效,设置属性有效。您是否正在使用模拟器进行测试?

我发现自动大写只有在您禁用 Hardware > Keyboard > Connect Hardware Keyboard 中的硬件键盘(取消选中)并使用屏幕上的软件键盘时才有效。我在 iOS 8.1 中使用 UITextField 和 UITextView 对此进行了测试。

编辑

这些属性仅确定手动输入期间的行为。如果您需要以编程方式设置到文本视图中的文本大写,请使用以下方法:

NSString *myString = @"this is my uncapitalised string";
self.fullNameTextView.text = [myString capitalizedString]

【讨论】:

  • 你是如何实例化你的文本视图的?当您说视图没有响应时,您的确切意思是什么?您根本不能编辑文本视图吗?我用 UITextView 和 UITextField 模拟了一个简单的测试视图控制器,它按预期工作。
  • 通过情节提要并添加了一个创建虚线占位符的子类。没有对大写类型做任何事情
  • 好的,我想我明白了。我会更新我认为您的问题的答案。
  • 谢谢applejack,但是我需要它来手动输入。有什么东西会干扰设置大写的行为吗?
  • 你用什么方法调用 self.fullNameTextView.autocapitalizationType = UITextAutocapitalizationTypeWords;?
【解决方案4】:
 self.fullNameTextView.autocapitalizationType = UITextAutocapitalizationTypeWords; 

注意:如果在 iOS/iDevice 上的设置>通用>键盘>自动大写关闭了模拟器或自动大写,它将不起作用。如果对文本视图禁用自动更正,则此解决方案不起作用。

【讨论】:

  • 代码与海报的代码有何不同?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-04-26
  • 1970-01-01
  • 1970-01-01
  • 2023-04-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多