я получаю ошибку, описанную в при попытке изменить цвет на тексте внутри UIAlertController
:приложение падает при попытке изменить цвет сообщения о UIAlertController, стремительные
Нагрузочного приложение из-за неперехваченное исключением «NSInvalidArgumentException», причина: '- [NSConcreteAttributedString rangeOfCharacterFromSet]: непризнанные селектор направлен например 0x60000003e320'
Функция, которая пытается изменить цвет:
@objc private func submitScore(color: Bool = false) {
var mess = ""
mess = color ? "Invalid username" : ""
let alertController = UIAlertController.init(title: "Submit score", message: mess, preferredStyle: .alert)
alertController.setValue(NSAttributedString(string: mess, attributes: [NSForegroundColorAttributeName: UIColor.red]), forKey: "message")
//Submit button calls function again
let submit = UIAlertAction(title: "Submit", style: .default) { (submit) in
self.submitScore(color: true)
}
let cancel = UIAlertAction(title: "Cancel", style: .cancel, handler: { (cancel) in
})
alertController.addTextField(configurationHandler: {(textfield) in
textfield.placeholder = "Nickname"
})
alertController.addAction(submit)
alertController.addAction(cancel)
present(alertController, animated: true, completion: {(alertController) in
print("shown")
})
}
Проблема решается, если я удалить строки 5. NSForegroundColorAttributeName
является действительным NSAttributedString-свойство, так что я не понимаю, ошибка ..
Свойство 'message' имеет тип' String' так что вы не можете добавить атрибуты к нему. Для установки отправленного сообщения нет открытого свойства. – rckoenes