Я также столкнулся с той же проблемой, я искал везде, но, похоже, никто другой не сталкивается с этой проблемой.К счастью, я нашел хак, который решает проблему.
Что я заметил, так это то, что при изменении размера окна или его увеличении полосы прокрутки изменяются до ожидаемого размера (необходимо изменить авторазмер).Это происходит потому, что при изменении размера окна вид прокрутки и длина полос прокрутки пересчитываются и вычисляются правильно.Возможно, из-за некоторой ошибки длины полосы прокрутки не были правильно рассчитаны при инициализации.В любом случае, чтобы решить проблему, в вашем приложении делегат создаст выход к вашему окну.Переопределите метод «applicationDidFinishLaunching» и внутри него вызовите метод «frame» на выходе окна, который возвращает текущий NSRect окна.Используя возвращаемое значение, добавьте его к size.width и size.height.Вызовите метод setFrame с дисплеем, установленным в YES.Это изменит размер окна и заставит пересчитывать размер полос прокрутки.
Вот код для applicationDidFinishLaunching Ниже
(void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
// Get the current rect
NSRect windowRect = [_window frame];`
// add one to the width and height to resize window
windowRect.size.width += 1;
windowRect.size.height += 1;
// resize window with display:YES to redraw window subviews
[_window setFrame:windowSize display:YES];
}