【问题标题】:How to insert new line \n from UILabel text which typed in IB? [duplicate]如何从输入 IB 的 UILabel 文本中插入新行 \n? [复制]
【发布时间】:2013-03-16 02:40:48
【问题描述】:

我有 id textInput 并且我插入新行(\n)OK:

[textInput insertText:@"\n"];

但是当从 label.text 输入文本(在 Interface Builder 中输入)时,它就不行了。只需输入 \n 文本。

NSLog(@"%@",label.text);
[textInput insertText:label.text];

在label.text中存储特殊字符时如何输入?

我不想比较[inputStr isEqualToString:@"\\n"];

*日志:\n

谢谢!

【问题讨论】:

  • 它们是一样的。你做错了什么。
  • 我把 \n 放到标签和 [textInput insertText:label.text] 上,不工作,只得到 \n 文本。这里没有错。
  • 提示:如果你 NSLog 数据并且它打印“\n”那么它不包含“\n”。
  • 它们是一样的。你做错了什么。 (而且你没有向我们展示你的真实代码。)
  • 您的问题是 label.text 不包含由“\n”表示的换行代码,而是包含字符“\”和“n”。如果您在 Interface Builder 中将“\n”放入标签的文本字段中,这可能会发生,但如果您编写 C 字符串“\n”或 Objective-C NSString @“\n”,则该组合将始终被转换换行。

标签: ios objective-c nsstring


【解决方案1】:

尝试 option-return 或粘贴在换行符中。

【讨论】:

  • 谢谢! option-return 是正确的方法!
  • option-return 确实有效。
  • 像魔术一样工作 try this
  • 最好的办法 :D :thumbsup:
  • 出于某种原因,ctrl+return 有效,但 option+ret 无效。
【解决方案2】:

@Hot Licks 在评论中很好地解释了原因。

唯一的办法是

if ([self.mylabel.text isEqualToString:@"\\n"]) {

   [self.myTextView insertText:@"\n"];
}

手动,使用ALT+ENTER

【讨论】:

  • 请看我的编辑。你知道原因吗?
  • 对不起!不行。你能做一个测试吗?
  • 谢谢@Ramshad!我之前测试过这个案例,但是我在 IB 中输入了一些特殊字符,所以我不想比较所有案例。我在等!
  • 在另一个答案中找到 \r 并且工作正常 :-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-12-07
  • 2013-12-30
  • 1970-01-01
  • 2012-08-08
  • 1970-01-01
  • 2019-03-04
  • 1970-01-01
相关资源
最近更新 更多