如何拦截粘贴到NSTextView以删除不支持的格式?

Mar*_*eIV 8 formatting cocoa reformat paste nstextview

我正在尝试创建一个简单的基于NSTextView的窗口,用于简单的WYSIWYG编辑.但是,我只想允许某些类型的格式化(例如粗体,斜体,下划线和单个标题类型,但没有颜色或不同的字体.)

问题是,如果我只是使用NSTextView,有人可以在另一个程序中创建或复制格式化文本,然后只需将其粘贴到该视图中,所有格式都与它一起使用,允许我不允许的内容,例如不同的字体,颜色,等等

充其量,我想自动删除我的应用程序不支持的任何格式.在最坏的情况下,我想简单地拦截粘贴并将其更改为纯文本,尽管他们必须手动重新格式化它.但这比无效格式更可取.

注意:在SO上多次提到类似的东西,但它们通常是指Web或使用JavaScript/JQuery.我特别指的是在Mac应用程序中使用NSTextView,所以请在简单地将其标记为重复之前,确保这是另一个问题所指的内容.谢谢.

小智 7

在你的 NSTextView 子类中:

  override func paste(_ sender: Any?) {
     pasteAsPlainText(sender)
  }
Run Code Online (Sandbox Code Playgroud)