警报文本字段中的大写字母(仅第一个单词)

时间:2018-11-19 13:31:25

标签: ios swift xcode

我正在使用清单应用程序。如果用户要在清单上添加新点,则可以按“添加”按钮,然后会出现一个带有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

    }

2 个答案:

答案 0 :(得分:3)

使用文本字段的autocapitalizationType属性,并在添加时将其设置为句子...

alert.addTextField { textField in
    textField.text = "Some default text"
    textField.autocapitalizationType = .sentences 
}

总是参考documentation,它解释得很好。

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

答案 1 :(得分:0)

您可以使用以下任何功能:-

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

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
}