【问题标题】:setting an NSTextView设置一个 NSTextView
【发布时间】:2011-03-13 23:27:50
【问题描述】:

如何将NSTextView 设置为NSAttributedString?我不想使用 textConainer,我试过了:

[myTextView insertText:myMutableAttributedString];

但它没有工作。什么都没有发生……甚至没有警告或运行时错误。任何帮助将不胜感激。

【问题讨论】:

  • 您确认myTextField 不是nil
  • 是的,我已经验证 myTextView 不为零。

标签: cocoa nstextview nsattributedstring


【解决方案1】:

Textview 必须是可编辑的才能插入。

[myTextView setEditable:YES];
[myTextView insertText:myMutableAttributedString];
[myTextView setEditable:NO];

【讨论】:

  • 'insertText:' 已弃用:首先在 macOS 10.11 中弃用 - 请改用 NSTextInputClient 中的 -insertText:replacementRange:。由于该方法设计为仅由输入系统使用,因此不应将消息从应用程序发送到文本视图。任何内容修改都应该通过 NSTextStorage 或 NSText 方法。
【解决方案2】:

在 Swift 2.2 中:

myTextView.textStorage?.setAttributedString(myMutableAttributedString)

在 Objective-C 中:

[[myTextView textStorage] setAttributedString:myMutableAttributedString];

【讨论】:

    【解决方案3】:

    您应该在调用该方法之前使用空字符串调用-setString(否则您将文本插入到空字符串对象中):

    [myTextView setString:@""];
    [myTextView insertText:myMutableAttributedString];
    

    【讨论】:

    • 它没有用。控制台中甚至没有任何报告问题。
    【解决方案4】:

    textView 是以编程方式创建的?如果你从 xib 加载 NSTextView,它会很好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多