【发布时间】:2018-12-11 17:49:04
【问题描述】:
我的目标是在将字符串粘贴到 NSTextView 之前修改字符串 - 删除所有非字母(数字、空格等)。
通过link,我想出了以下代码:
override func paste(_ sender: Any?) {
let pasteboard = NSPasteboard.general
// receive string from pasteboard
if let pasteboardString = pasteboard.string(forType: .string) {
let lettersOnly = CharacterSet.letters
// filter the incoming string
let lettersOnlyString = String(pasteboardString.unicodeScalars.filter { lettersOnly.contains($0) })
// put back filtered string into pasteboard
pasteboard.setString(lettersOnlyString, forType: .string)
super.paste(sender)
// put back initial formatted string
pasteboard.setString(pasteboardString, forType: .string)
}
}
lettersOnlyString确实是修改后的字符串,但最后还是粘贴了原始字符串,我仍然看到所有非字母字符。
我在这里错过了什么,也许这不是要走的路?也许我需要为此覆盖另一种方法?
【问题讨论】:
标签: macos nstextview nspasteboard