UITextField自动大写类型-iPhone App


112

有没有一种方法可以将autocapitalizationType设置为a,UITextField以便每个单词的首字母默认为大写?

这是我想要的一个例子


45
另一方面-能够谷歌搜索'UITextField首字母大写'并在2秒内弹出该对话框非常好,而不是浪费一整分钟来打开文档并进行扫描。StackOverflow IS文档。
Shaun Budhram 2013年

1
碰到这样的问题让我很高兴:1)人们有能力提出连贯的直接问题(无论范围如何),2)人们发表了最好的评论***
Will Von Ullrich

Answers:


237

textField.autocapitalizationType = UITextAutocapitalizationTypeWords;

有关更多信息,请阅读:UITextInputTraits协议参考


2
如果您将文本拖到字段中,则无济于事。在这种情况下,委托文本输入并替换每个单词的第一个字母
HotJard 2013年

您愿意详细说明一些HotJard吗?我想知道如何粘贴文本并自动大写。
vnchopra 2014年

5
它不起作用,我在Xcode 6 iOS 8 Swift上尝试过。我是在代码和界面生成器中完成的,都没有用。
Van Du Tran 2014年

10
确保“界面构建器”中的键盘设置为默认键盘。否则将无法正常工作
OscarVGG 2015年

3
另外,还要确保在os设置(设置->常规->键盘)中启用了自动大写,iOS设置值会覆盖您在文本字段上设置的所有内容
Lope

38

我们要做的是设置文本字段的autocapitalizationType

目标C:

self.textfield.autocapitalizationType = UITextAutocapitalizationTypeWords

迅速:

self.textfield.autocapitalizationType = .words

这里有一些选择:

在此处输入图片说明

  • allCharacters 与双击Shift键(基本上是大写锁定)相同。
  • none 非常不言自明,键盘永远不会尝试大写字母。
  • sentences 会在结束点标点后尝试大写下一个单词。
  • words 会尝试将每个新单词都大写(在空格后),这似乎正是您要寻找的。

当选择了适当的文本字段时,也可以从界面构建器的“属性”检查器中设置此属性:

在此处输入图片说明

“ Capitalization”是该组中的第一个选项,刚刚通过选择了文本字段的最小字体大小。


8

capitalization属性设置为“单词”将建议用户输入大写单词。用户可以通过在键盘上取消移动来覆盖此设置。最好的办法是将代码中的单词大写:

NSString *text = [myTextField.text capitalizedString];

这将大写整个字符串,UITextAutocapitalizationTypeWords仅将每个键入的单词的首字母大写。
雅各布

尽管这不是OP想要的,但我确实真的发现它很有用!我有一个NSString保存在某个地方,所有地方都是大写的。我需要将UITextField的文本与原始字符串进行比较,并使用您的建议使我不必向用户解释事情(我让Objective c来完成所有工作
:)

7

是。在InterfaceBuilder上的textField属性检查器上,可以将“大写”属性设置为Words。


6

Obj-C有一个答案,在这里是Swift。

textField.autocapitalizationType = UITextAutocapitalizationType.words

或更短的方法

textField.autocapitalizationType = .words

我测试了.words和.allCharacters。在模拟器上,它可以工作。在连接的iPhone X上没有。Xcode 10.1,iPhone 12.1
geohei

1
如果在设置->常规->自动更正/自动大写中关闭了,我将无法工作。
Sheetal Shinde

1

您甚至可以通过情节提要或.xib文件来执行此操作。只需选择文本字段,然后在右侧的属性检查器中有一个“大写”部分,您可以在其中选择适合您的任何内容。您的情况是大写的“单词”。


0

在Xamarin.ios / Monotouch中,这对我有用:

textField.AutocapitalizationType = UITextAutocapitalizationType.Words;
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.