【问题标题】:Adding a line break to a UITextView向 UITextView 添加换行符
【发布时间】:2011-04-11 11:13:18
【问题描述】:

我有一个UITextView,它采用格式为stringWithUTF8StringNSString。它从数据库中获取它的值,我希望数据库中的文本在文本中呈现中断。我尝试使用\n 来执行此操作,但它被呈现为文本。在我的应用程序信息页面中执行此操作作为纯文本有效,但我认为从数据库中获取它时它不起作用的原因是因为格式。

有什么建议吗?

【问题讨论】:

  • 我听说\n\n 有效。试试看。
  • 听起来你的字符串中有一个实际的“blackslash n”而不是正确的回车符。
  • 我已经完成了 \n 和 \n\n 并且都被渲染为文本。不过谢谢。还有其他人吗?
  • 尝试当你让你有你尝试过这样的事情:_label.text = @"Line 1\n" @"Line 2\n" @"Line 3";
  • 轮到我了。取 NSString 并将所有 @"\\n" 替换为 @"\n"。

标签: utf-8 nsstring uitextview whitespace


【解决方案1】:

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

  1. 拖出一个 UITextView。
  2. 双击它以编辑文本,将光标放在您想要分节的位置。
  3. 点击 alt-Enter 几次以创建一个空行和段落。

或者,CTRL + Return 换行。

您现在可以在故事板中看到输出/视图模式的效果。

【讨论】:

  • 是的,确实如此。现在该怎么办?
  • 使用属性检查器中的文本字段而不是在情节提要中双击该字段,alt+Enter 不会在那里崩溃。
  • 控制+返回是关键
  • 这不是实际问题的答案!!
  • 这对我有用:- remarkTextView.isEditable = true; remarkTextView.text = 备注; remarkTextView.isEditable = false;
【解决方案2】:

稍微扩展 tc 的答案:当字符串中有换行符时,您可能希望将它们转换为 \n(即 Cocoa 中的 @"\\n"),然后保存到数据库中,然后从获取字符串 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");

}

将在您的 textView 或您选择的任何内容中显示如下

输出:

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

【讨论】:

    【解决方案4】:

    在 Swift 中,只需在两个字符串之间添加“\n”

    示例:

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

    【讨论】:

    • 对我来说效果很好。不需要 \\n。
    【解决方案5】:

    我认为,您应该尝试使用“\r”。

    我已经在 Xcode 4.2.1、iOS 4.3 上测试过

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

    【讨论】:

    • 你试过用\n代替吗?
    【解决方案6】:

    UITextView 将采用换行符,但它不适用于回车。 您必须确保输入正确。

    我在 IB 编辑器中尝试过,最初遇到了一些问题。 然后我使用文本编辑器,输入我的文本,然后将其粘贴到 IB 编辑器中。

    对我来说,这就是诀窍。 您的来源来自数据库,所以我认为换行符实际上是换行符,但可能是回车或其他。检查输入的 HEX 字符串。

    【讨论】:

    • 好答案。我从文本编辑器复制了文本,新行显示得很好。
    【解决方案7】:

    当你从 db.试试

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

    【讨论】:

      【解决方案8】:

      设置 (UIKeyboardType)keyboardType 和 (UIReturnKeyTYPE) returnKeyType

      如果您是在代码中构建。

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

      【讨论】:

        【解决方案9】:

        如果您从网络获取文本,请确保在 /n 之前和之后放置一个空格 解决了我的问题

        作为示例(php):

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

        【讨论】:

          【解决方案10】:

          在字符串中追加一个字符(“\n”)

          var logs = "this is first Line" self.logs.append(Character("\n")) self.textView.text = self.logs

          【讨论】:

            【解决方案11】:

            扩展 Olie 的答案...在 Swift 中,用于从数据库更新字符串的代码是:

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

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

            【讨论】:

              【解决方案12】:

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

              【讨论】:

                猜你喜欢
                • 2016-02-01
                • 1970-01-01
                • 2011-12-15
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2019-06-15
                • 2019-12-05
                相关资源
                最近更新 更多