Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/95.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 警报文本字段中的大写字母[仅第一个单词]_Ios_Swift_Xcode - Fatal编程技术网

Ios 警报文本字段中的大写字母[仅第一个单词]

Ios 警报文本字段中的大写字母[仅第一个单词],ios,swift,xcode,Ios,Swift,Xcode,我正在开发一个清单应用程序。如果用户想在他的检查表上添加一个新的点,他可以按下“添加”按钮,并且会出现一个带有UITextField的警报,以将他的新任务放入 alert.addAction(UIAlertAction(title: "Add", style: .default, handler: { (action) in let textf = alert.textFields![0] as UITextField if(textf.text != "")

我正在开发一个清单应用程序。如果用户想在他的检查表上添加一个新的点,他可以按下“添加”按钮,并且会出现一个带有UITextField的警报,以将他的新任务放入

alert.addAction(UIAlertAction(title: "Add", style: .default, handler: { (action) in

let textf = alert.textFields![0] as UITextField

        if(textf.text != "")
        {
            checklist.append(textf.text!.capitalized)
        }
        self.myTableView.reloadData()
    }))
    self.present(alert, animated: true, completion: nil)
}
这样做会在点击“添加”后将单词大写。但我只希望第一个字大写。此外,我希望它出现时在键盘上,以便第一个单词立即大写。我该怎么做

let alert = UIAlertController(title: "Add new task", message: nil, preferredStyle: .alert)
    alert.addTextField { (alertInputTextField) in

    }

使用textfield的
autocapitalizationType
属性,并在添加时将其设置为句子

alert.addTextField { textField in
    textField.text = "Some default text"
    textField.autocapitalizationType = .sentences 
}
总是参考,它很好地解释了这一点


如果需要直接对字符串执行此操作,只需将字符串的第一个字母大写即可。

您可以使用以下任意函数:-

public mutating func capitalizeFirst() {
    guard self.count > 0 else { return }
    self.replaceSubrange(startIndex...startIndex, with: String(self[startIndex]).capitalized)
}


在将文本字段添加到文本之前,请在文本字段上设置大小写属性alert@Scriptable但是在哪里?显示如何在上获取文本字段的代码alert@Scriptable更新如果这解决了您的问题,请将其标记为已接受的答案,以显示问题已解决。谢谢,或者只是在文本字段上设置
textField.autocapitalizationType=.句子
?是的,我刚刚建议了一个替代方案。您可以拥有整个项目的通用结构,并在其中包含这些功能。
public func capitalizedFirst() -> String {
    guard self.count > 0 else { return self }
    var result = self

    result.replaceSubrange(startIndex...startIndex, with: String(self[startIndex]).capitalized)
    return result
}