以编程方式更改NSTextView的文本

时间:2013-02-01 12:18:48

标签: objective-c macos cocoa nstextview

我无法找到任何与NSTextView中显示的文字值相关的参数。我理解NSTextView使用复杂的结构(NSLayoutManager等...),但我无法找到修改当前text值的有效方法。

6 个答案:

答案 0 :(得分:24)

正确的方法是“setString”[textView setString:@"the string"];

答案 1 :(得分:14)

在插座textView Swift Xcode 8.0上设置文本

textView.string = newString

答案 2 :(得分:4)

这样的事情:

[textView setString:@"new value"];

答案 3 :(得分:2)

如果要设置属性文本(格式化文本),请尝试

[myTextView setAttributedString:(NSAttributedString*)attrString].

NSTextView包含一个实际保存文本的NSTextStorage对象...

答案 4 :(得分:2)

目标C / Xcode 9

[myTextView setString:@"The string"];
self.myTextView.string = @"My String";

Swift / Xcode 9

self.myTextView.setString("MyString")
self.myTextView.string = "My String"

答案 5 :(得分:0)

几乎就是 - 程序在下面 - 这几乎可以工作。那里有两个 突出问题:

1)点击两次鼠标即可在文本中设置正确的选择点    第一个总是到文本的末尾。第二个要求的    位置

2)在shell中打印出一个奇怪的错误 - 断言失败 - [LUPresenter animationControllerForTerm:atLocation:options:],/ SourceCache / Lookup / Lightsup160 / Framework / Class / LUPresenter.m:

  import Cocoa


  class MyAppDelegate: NSObject, NSApplicationDelegate {

      let window = NSWindow()


      func applicationDidFinishLaunching(aNotification: NSNotification) {

          window.setContentSize(NSSize(width:600, height:200))
          window.styleMask = NSTitledWindowMask | NSClosableWindowMask |
                             NSMiniaturizableWindowMask |
                             NSResizableWindowMask





          window.opaque = false
          window.center();
          window.title = "My window"

          let ed = NSTextView(frame: NSMakeRect(20, 10, 180, 160))
          ed.font = NSFont(name:"Helvetica Bold", size:20)
          ed.string = "edit me"
          ed.editable = true
          ed.selectable = true

          window.contentView!.addSubview(ed)

          window.makeKeyAndOrderFront(window)
          window.level = 1
      }

      func applicationWillTerminate(aNotification: NSNotification) {
          // Insert code here to tear down your application
      }

  }

  let app = NSApplication.sharedApplication()
  app.setActivationPolicy(.Regular)

  let obj = MyAppDelegate()

  app.delegate = obj
  app.run()