Я не могу найти какой-либо параметр, который, как представляется, связан с текстовым значением, указанным в NSTextView
. Я понял, что NSTextView
использует сложную структуру (с NSLayoutManager
и т.д.), Но я не могу найти правильный способ изменить текущее значение text
.
Измените текст NSTextView программно
Ответ 1
Правильный метод - "setString" [textView setString:@"the string"];
Ответ 2
Настройка текста на выходе textView Swift Xcode 8.0
textView.string = newString
Ответ 3
Что-то вроде этого:
[textView setString:@"new value"];
Ответ 4
Если вы хотите установить атрибутный текст (форматированный текст), попробуйте
[myTextView setAttributedString:(NSAttributedString*)attrString].
NSTextView содержит объект NSTextStorage, который фактически содержит текст...
Ответ 5
Практически там - программа ниже - это почти работает. Есть два нерешенные проблемы:
1) Для установки правильной точки выбора в тексте требуется два щелчка мыши первый всегда идет до конца текста. Второе - требуемое Положение
2) В оболочке напечатана странная ошибка - Ошибка утверждения - [LUPresenter animationControllerForTerm: atLocation: options:],/SourceCache/Lookup/Lookup-160/Framework/Classes/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()