将一个换行符添加到UITextView

我有一个UITextView采用格式为stringWithUTF8StringNSString 。 它从数据库中获取它的值,我希望数据库中的文本在文本中被打断。 我尝试使用\n来做到这一点,但它被呈现为文本。 在应用程序的信息页面中以直接文本方式工作,但我认为从数据库中取出它的原因是因为格式不对。

有什么build议么?

如果你想在Xcode5 / Xcode6 storyboard Attribute-Inspector(AI)中添加换行符,你可以这样做:

  1. 拖出一个UITextView。
  2. 双击它以编辑文本,将光标放在您想要段落中断的地方。
  3. Alt – input几次,创build一个空行和段落。

或者,CTRL +返回一个新行。

您现在可以在故事板中将效果看到输出/视图模式中。 在这里输入图像说明

扩大tc的答案有点:当你在string中有换行符的时候,你可能想把它们转换成\n (也就是Cocoa中的@"\\n" ),然后保存到数据库中,然后从数据库,你可能想把它们转换回换行符。 所以你会使用这样的代码:

 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"]; 

简单地说如下:

 { 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"); } 

将出现在你的textView或任何你select的下面

输出:

1月7日,21日,
2月4日,18日,
3月:4日,18日等

我想,你应该尝试使用“\ r”。

我已经在Xcode 4.2.1,iOS 4.3上testing过了

编辑:这也适用于iOS 3.0和iOS 5.1

在Swift中,只需在两个string之间添加“\ n”即可

例:

 let firstString = "Hello" let secondString = "Senorita" textview.text = firstString + "\n" + "secondString" 

UITextView将采用换行符,但不会与cariage返回。 你将不得不确保你的input是正确的。

我在IB编辑器里试了一下,最初有些麻烦。 然后我使用文本编辑器,input我的文本,然后将其粘贴到IB编辑器中。

这对我来说就是诀窍。 你的源代码来自于一个数据库,所以我认为换行符实际上是换行符,但是可能会回车或其他。 检查input的HEXstring。

设置(UIKeyboardType)keyboardType和(UIReturnKeyTYpe)returnKeyType

如果你正在build立代码。

如果您正在使用IB,那么只需转到第一个检查器面板并设置TextInputTraits

当你从数据库获得。 尝试

 NSString *content = [mytext stringByReplacingOccurrencesOfString:@"\\n" withString:@"\n"]; self.textView.text = content; 

如果你从网上获得文本,请确保你在/ n之前和之后放置了一个空间来解决我的问题

作为例子(PHP):

 echo $item_detail['item_title']." \n "; 

在Olie的答案上扩展…在Swift中,用于从数据库更新string的代码是:

 let dbString = // get the string from the db. myTextField.text = dbString.stringByReplacingOccurrencesOfString("\\\\n", withString: "\n") 

花了我一段时间才弄清楚,所以想到我会分享。

您正在数据库中保存一个文字“\ n”。 尝试保存一个换行符。