Добавление разрыва строки в UITextView
У меня есть UITextView
, который принимает NSString
с форматированием stringWithUTF8String
. Он получает свои значения из базы данных, и я хочу, чтобы текст в базе данных отображался с разрывами в тексте. Я попытался использовать \n
, чтобы сделать это, но он будет отображаться как текст. Выполнение этого на моей информационной странице приложения, как прямой текст работал, но я думаю, что причина его не работает при ее взятии из базы данных из-за форматирования.
Любые предложения?
Ответы
Ответ 1
Если вы хотите добавить новую строку в Xcode5/Xcode6 раскадровку Attribute-Inspector (AI), вы сделаете так:
- Вытащите UITextView.
- Дважды щелкните его, чтобы отредактировать текст, поместите курсор туда, где вы хотите разбить абзац.
- Нажмите alt-Enter пару раз, чтобы создать пустую строку и абзац.
Или, CTRL + Return сделать новую строку.
Теперь вы можете увидеть эффект в режиме вывода/просмотра в раскадровке. ![enter image description here]()
Ответ 2
Разверните tc немного: когда у вас есть строки новой строки, вы, вероятно, захотите преобразовать их в \n
(то есть @"\\n"
в Cocoa), затем сохраните их в базе данных и, получив строку BACK из базы данных, вы, вероятно, захотите преобразовать их обратно в новые строки. Поэтому вы бы использовали код примерно так:
NSString *saveString = [myTextField.text stringByReplacingOccurrencesOfString: @"\n" withString: @"\\n"];
// save it to the db
// ... later ...
NSString *dbString = // get the string from the db.
myTextField.text = [dbString stringByReplacingOccurrencesOfString: @"\\n" withString: @"\n"];
Ответ 3
Просто ниже:
{
textView.text = @"January: 7th,21st,\n February: 4th,18th,\n March: 4th,18th,\n April: 1st, 15th, 29th, \n May: 13th, 27th, \n June: 10th,24th, \n July: 8th, 22nd, \n August: 5th, 19th, \n September: 2nd, 16th, 30th, \n October: 14th, 28th, \n November: 11th, 25th";
NSLog (@"Recycle Dates for Abbey Way");
}
будет выводиться ниже в вашем текстовом элементе или в любом другом месте, которое вы выбираете
Выход:
Январь: 7, 21,
Февраль: 4, 18,
Март: 4-й, 18-й и т.д. И т.д.
Ответ 4
Я думаю, вы должны попробовать использовать "\ r".
Я тестировал его на Xcode 4.2.1, iOS 4.3
Изменить: это также работает в iOS 3.0 и iOS 5.1
Ответ 5
В Swift просто добавьте "\n" между двумя строками
Пример:
let firstString = "Hello"
let secondString = "Senorita"
textview.text = firstString + "\n" + "secondString"
Ответ 6
UITextView будет принимать новые строки, но он не будет работать с возвратом кариеса.
Вам нужно будет убедиться, что ваш вход правильный.
Я попробовал его в редакторе IB, и сначала имел некоторые проблемы с ним.
Затем я использовал текстовый редактор, набрал текст и вставил его в редактор IB.
Это трюк, для меня.
Ваш источник поступает из базы данных, поэтому я думаю, что новоиспеченные строки - это новые строки, но возврат каретки или другое. Проверьте строку HEX вашего ввода.
Ответ 7
Установите тип клавиатуры (UIKeyboardType) и (UIReturnKeyTYpe) returnKeyType
если вы строите код.
Если вы используете IB, просто перейдите на первую панель инспектора и установите TextInputTraits
Ответ 8
когда вы получаете от db. попробуйте
NSString *content = [mytext stringByReplacingOccurrencesOfString:@"\\n" withString:@"\n"];
self.textView.text = content;
Ответ 9
если вы получаете текст из Интернета, убедитесь, что вы помещаете пробел до и после /n
которые решили мою проблему
в качестве примера (php):
echo $item_detail['item_title']." \n ";
Ответ 10
Расширение ответа Olie... В Swift код для обновления строки из базы данных:
let dbString = // get the string from the db.
myTextField.text = dbString.stringByReplacingOccurrencesOfString("\\\\n", withString: "\n")
Понадобился время, чтобы разобраться, так что подумал, что буду делиться.
Ответ 11
Вы сохраняете литерал "\n" в базе данных. Попробуйте сохранить новую строку.