从滚动文本视图中读取文本,并在macOS中插入特定字符串



Hi我想在MacOS中创建一个基于用户输入的字符串,swift。

例如,如果用户输入了字符串

"的第1行fadsjkf

2号线fasdjkfla

3号线fasdnfkdf

">

我想阅读每行中的字符串,并插入一些字符或字符串,如

"XYZ Line 1 fadsjkf

ABC 2号线

DEF生产线3 fasdnfkdf

">

如何实现这一功能?

在您的示例中,用户输入是在3行上吗?如果是这样,您可以将字符串拆分成一个数组,在每个项的开头添加文本,然后重新组合一个字符串。

会是这样的:

let someText = """
Line 1 fadsjkf
Line 2 fasdjkfla
Line 3 fasdnfkdf
"""
// May be your text comes as let someText = "Line 1 fadsjkfnLine 2 fasdjkflanLine 3 fasdnfkdf"
let toBeAppended = ["XYZ", "ABC", "DEF"] // Do you want to compute automatically ?
var lines = someText.split(separator: "n").map { String($0) }
var newLines = ""
for (iLine, line) in lines.enumerated() {
let newLine = toBeAppended[iLine] + " " + line
newLines = newLines + newLine + "n"
}
print(newLines)

并得到:

XYZ Line 1 fadsjkf
ABC Line 2 fasdjkfla
DEF Line 3 fasdnfkdf

编辑

如果您想要3条以上且数量不确定的线路:

let someText = "Line 1 fadsjkfnLine 2 fasdjkflanLine 3 fasdnfkdfnLine 4 fasdjkflaanLine 5 fasdjkflabnLine 6 fasdjkflacnLine 7 fasdjkfladnLine 8 fasdjkflaenLine 9 fasdjkflafnLine 10 fasdjkflagnLine 11 fasdjkflahnLine 12 fasdjkflai"
let toBeAppended = ["XYZ", "ABC", "DEF", "GHI", "JKL", "MNO", "PQR", "STU", "VWX", "YZ@"] // 9 here, up to you to add more ; beyond this, add for instance @@@
var lines = someText.split(separator: "n").map { String($0) }
var newLines = ""
for (iLine, line) in lines.enumerated() {
let newLine = iLine < toBeAppended.count ? toBeAppended[iLine] + " " + line : "@@@ " + line
newLines = newLines + newLine + "n"
}
print(newLines)

你得到:

XYZ Line 1 fadsjkf
ABC Line 2 fasdjkfla
DEF Line 3 fasdnfkdf
GHI Line 4 fasdjkflaa
JKL Line 5 fasdjkflab
MNO Line 6 fasdjkflac
PQR Line 7 fasdjkflad
STU Line 8 fasdjkflae
VWX Line 9 fasdjkflaf
YZ@ Line 10 fasdjkflag
@@@ Line 11 fasdjkflah
@@@ Line 12 fasdjkflai

最新更新