如何在swift中创建新行

时间:2016-02-14 01:17:12

标签: string swift

有没有办法在swift中创建新行,例如" \ n"对于java?

#include <QApplication>
#include <QDialog>
#include <QWidget>
#include <QGridLayout>
#include <QPushButton>
#include <QMainWindow>
#include <QBitmap>

class myMainWindow : public QMainWindow
{

public:
myMainWindow():QMainWindow()
  {
    setMask((new QPixmap("saturn.png"))->mask());
      QPalette* palette = new QPalette();
      palette->setBrush(QPalette::Background,QBrush(QPixmap("saturn.png")));
      setPalette(*palette);

      setWindowFlags(Qt::FramelessWindowHint);
      QWidget *centralWidget = new QWidget(this);
      QGridLayout *layout = new QGridLayout();

      centralWidget->setLayout(layout);

      QPushButton* button1 = new QPushButton("Button 1");
      button1->setFixedSize(80,50);

      layout->addWidget(button1,0,0);

      setCentralWidget(centralWidget);
  };
  ~myMainWindow();
};

int main(int argc, char *argv[])
{
  QApplication app(argc, argv);
  myMainWindow *window = new myMainWindow();

    window->resize(600, 316);
    window->show();
    return app.exec();
}

5 个答案:

答案 0 :(得分:87)

你应该能够在Swift字符串中使用\n,它应该按预期工作,创建一个换行符。您需要删除\n之后的空格,以获得正确的格式,如下所示:

var example: String = "Hello World \nThis is a new line"

如果打印到控制台,应该成为:

Hello World
This is a new line

但是,根据您将如何使用此字符串,还有一些其他注意事项,例如:

  • 如果您要将其设置为UILabel的文本属性,请确保UILabel的numberOfLines = 0,这允许无限行。
  • 在某些网络用例中,请改用\r\n,即Windows换行符。

编辑:您说您正在使用UITextField,但它不支持多行。您必须使用UITextView。

答案 1 :(得分:12)

也有用:

let dateString = TimeUtils.formatTimeOnly(from: data.date!)
let dateAttributes = [NSFontAttributeName: UIFont(name: "SourceSansPro-Regular", size: 11)!, NSForegroundColorAttributeName: UIColor.gray]
let dateMutableString = NSMutableAttributedString(string: "\n\(dateString)", attributes: dateAttributes)
  • 使代码更容易理解
  • 允许复制粘贴

答案 2 :(得分:8)

您可以使用以下代码;

var example: String = "Hello World \r\n This is a new line"

答案 3 :(得分:1)

您可以做到

textView.text = "Name: \(string1) \n" + "Phone Number: \(string2)"

输出将为

名称:string1的输出 电话号码:string2的输出

答案 4 :(得分:0)

"\n"到处都不工作!

例如,在电子邮件中,如果您在自定义键盘中使用它,则在文本中添加确切的“ \ n”而不是新行,例如:textDocumentProxy.insertText("\n")

还有其他newLine字符可用,但我不能只是将它们粘贴到此处(因为它们会换行)。

使用此扩展程序:

extension CharacterSet {
    var allCharacters: [Character] {
        var result: [Character] = []
        for plane: UInt8 in 0...16 where self.hasMember(inPlane: plane) {
            for unicode in UInt32(plane) << 16 ..< UInt32(plane + 1) << 16 {
                if let uniChar = UnicodeScalar(unicode), self.contains(uniChar) {
                    result.append(Character(uniChar))
                }
            }
        }
        return result
    }
}

您可以访问任何CharacterSet中的所有字符。有一个名为newlines的字符集。使用其中之一来满足您的要求:

let newlines = CharacterSet.newlines.allCharacters
for newLine in newlines {
    print("Hello World \(newLine) This is a new line")
}

然后将您测试过并工作过的产品存储到任何地方,并在任何地方使用。 请注意,您无法中继字符集的索引。可能会改变。

但是大多数时候 "\n"可以正常工作。