Swift Code
Реализовать UITextViewDelegate в вашем классе / Просмотреть так:
class MyClass: UITextViewDelegate { ...
установить делегата textView на себя
myTextView.delegate = self
И затем реализовать следующее :
func textViewDidChange(_ textView: UITextView) {
if textView.text.characters.count >= 1 {
if let lastChar = textView.text.characters.last {
if(lastChar == "\n"){
textView.text = textView.text.substring(to: textView.text.index(before: textView.text.endIndex))
textView.resignFirstResponder()
}
}
}
}
РЕДАКТИРОВАТЬ Я обновил код, потому что это никогда не хорошая идея, чтобы изменить пользовательский ввод в текстовое поле для обходного пути и не сбрасывать состояние после завершения кода взлома .
См. Выполнение математических вычислений даты и времени в HQL? для примера.
Чтобы использовать собственный sql, вы должны написать собственный диалект гибернации и зарегистрировать:
registerFunction("weekday",
new SQLFunctionTemplate(Hibernate.INTEGER, "to_char(?1,'D')") );
Вам нужно создать свой собственный диалект. Примерно так:
public class MyDialect extends MySQLInnoDBDialect{
public myDialect() {
super();
registerFunction("date_add_interval", new SQLFunctionTemplate(Hibernate.DATE, "date_add(?1, INTERVAL ?2 ?3)"));
}
}
Это открытая проблема в Hibernate. Начиная с Hibernate 3.3 нет стандартного способа обработки сравнения дат исключительно в HQL:
https://hibernate.atlassian.net/browse/HHH-2434
Hibernate 4.3 предлагает функции для доступа к дате / времени в HQL, которые являются:
current_timestamp() , current_date() , current_time()
Арифметическими операциями можно управлять с помощью:
SECOND(...) , MINUTE(...) , HOUR(...) , DAY(...) , MONTH(...) , YEAR(...)