Я обнаружил, что это решение предотвратило перенос строк, но имело некоторые печальные последствия для рисования для NSTextView.Проблема заключалась в том, что когда NSPanel, содержащий текстовые представления, перетаскивался так, чтобы быть шире, чем строки текста, прямоугольник границ NSView был скорректирован (базовым менеджером компоновки) так, чтобы он был немного длиннее текста - раскрывая фон NSPanel.Не то, что я имел в виду ...
Моими решениями было включить изменение размера в NSPanel, ограничить его по горизонтали, установив минимальный и максимальный размеры и отключить горизонтальное изменение размера для самого текстового представления:
// some fragments from the creation of the NSPanel
// resizable NSPanel created
mMonitorPanel = [[NSPanel alloc] initWithContentRect: monitorRect
styleMask: (NSTitledWindowMask| NSMiniaturizableWindowMask | NSResizableWindowMask)
backing: NSBackingStoreBuffered defer: NO];
// constrain resizing to horizontal only, with obvious limits ...
[mMonitorPanel setContentMaxSize: NSMakeSize(1000, 600)];
[mMonitorPanel setContentMinSize: NSMakeSize(300, 600)];
// a fragment from the init that creates an instance of a subclass of NSTextView ...
[self setVerticallyResizable: NO];
[self setHorizontallyResizable: NO]; // rather than YES as prior code snippet
// the rest is the same as above
[[self textContainer] setContainerSize: NSMakeSize(FLT_MAX, FLT_MAX)];
[[self textContainer] setWidthTracksTextView: NO];
Это приводит к тому, что панель монитора может быть изменена по горизонтали, не переносит линии и правильно рисует в своей NSPanel.
Надеюсь, это кому-то поможет - не знаю, где я 'без всех хороших исправлений, которые я нашел на этом сайте!