NSTextView делает переход на новую строку по умолчанию. Как я могу отключить это? Я делаю средство просмотра кода JSON, таким образом, я должен отключить это.
Я получил решение от: http://lists.apple.com/archives/cocoa-dev/2008/May/msg02396.html
Вы должны установить максимальную ширину NSTextView на очень большое число, чтобы это работало правильно. (Просто скопируйте максимальную высоту) И включите горизонтальную прокрутку NSScrollView, который является супервью NSTextView. Смотрите эти картинки:
http://www.flickr.com/photos/47601728@N06/4759470529/
http://www.flickr.com/photos/47601728@N06/4759470533/
Я обнаружил, что мой старый код примера недостаточен, чтобы заставить его работать правильно. (из-за версии SDK?) Также Вот мой полный фрагмент исходного кода, который отключает word-wrap в OSX 10.8 SDK.
[self setMaxSize:CGSizeMake(FLT_MAX, FLT_MAX)];
[self setHorizontallyResizable:YES];
[[self textContainer] setWidthTracksTextView:NO];
[[self textContainer] setContainerSize:CGSizeMake(FLT_MAX, FLT_MAX)];
Теперь Apple предоставляет официальное руководство по созданию NSTextView
правильно. Надеюсь, это поможет.
Я опубликовал пример проекта на Github. Смотрите эту страницу для конкретной реализации: https://github.com/Eonil/CocoaProgrammaticHowtoCollection/blob/master/ComponentUsages/TextView/ExampleApplicationController.swift?ts=4
Вот фрагмент кода из примера проекта.
if wordwrap {
/// Matching width is also important here.
let sz1 = scroll1.contentSize
text1.frame = CGRect(x: 0, y: 0, width: sz1.width, height: 0)
text1.textContainer!.containerSize = CGSize(width: sz1.width, height: CGFloat.max)
text1.textContainer!.widthTracksTextView = true
} else {
text1.textContainer!.widthTracksTextView = false
text1.textContainer!.containerSize = CGSize(width: CGFloat.max, height: CGFloat.max)
}
Самый простой способ - в Interface Builder, в инспекторе просто измените выпадающее меню.