打开Apple的日历应用程序.命名新约会时,它会自动将第一个字母大写.它没有使用'更正'样式换出来执行此操作.
对于我的生活,我无法重现这种行为.在IB中,我将UITextField的大小写设置为Word,但它似乎根本没有效果.如果我打开校正,它会用大写版本换掉这个单词,但这不太对.
我是否需要在代码中处理此问题,方法是检查每个按键?这可能是微不足道的,除了我担心我将遗漏的所有角落情况,例如当用户手动使用'shift'来否定大小写,或者删除和重新键入时,在这种情况下它不应该大写.
或者也许有一种方法可以简单地加载按下shift的文本字段?这是实施它的常用方法吗?
Ben*_*tto 61
将大写设置为Word应该这样做,所以其他的东西出错了.你确定在你正在测试的实际UITextField上切换了吗?你确定你不是可能在代码中以某种方式覆盖它吗?您可以通过以下方式以编程方式设置
[myTextField setAutocapitalizationType:UITextAutocapitalizationTypeWords];
Run Code Online (Sandbox Code Playgroud)
还有一个例外(根据文档),这将被忽略:
某些键盘类型不支持自动大写.具体而言,如果keyboardType属性中的值设置为UIKeyboardTypeNumberPad,UIKeyboardTypePhonePad或UIKeyboardTypeNamePhonePad,则忽略此选项.
这适用于你吗?
Jea*_*Luc 15
我刚刚在我的应用程序中检查了它,默认情况下它已经完成了大写.行为不是由您的应用程序代码决定的,而是由全局iphone设置决定的.
启动iOS设置.转到General,然后是Keyboard,用户可以选择"Auto-Capitalization".它关闭了吗?
在我的情况下,它已打开,所以我的应用程序和日历有此功能,当我关闭它,两个应用程序都缺乏此功能,因为用户决定他不想要此功能.
大写禁用
textField.autocapitalizationType = UITextAutocapitalizationTypeNone;
Run Code Online (Sandbox Code Playgroud)
大写所有字符
textField.autocapitalizationType = UITextAutocapitalizationTypeAllCharacters;
Run Code Online (Sandbox Code Playgroud)
将句子的第一个字符大写
textField.autocapitalizationType = UITextAutocapitalizationTypeSentences;
Run Code Online (Sandbox Code Playgroud)
将句子中所有单词的第一个字符大写
textField.autocapitalizationType = UITextAutocapitalizationTypeWords;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18566 次 |
| 最近记录: |