Я всегда использовал IB для настройки полос прокрутки, а затем использовал следующую строку, если я хочу подавить одну из них:
[self.aScrollView setHasHorizontalScroller:NO]; // so only the vertical scrollbar is active
Попробуйте использовать эту строку в awakeFromNib, затем установите для нее значение YES, если выберет пользователь, вместо использования свойства "hidden".
P.S. NSTextView, добавленный в IB, всегда встроен в NSScrollView, и именно прокрутка управляет полосами прокрутки. Поэтому, если вышеприведенное не работает, попробуйте вызвать setHasWhwhatScroller для суперпредставления вашего textview:
[[[aTextView superview] superview] setHasHorizontalScroller:NO];
Если вы получили ошибку «нераспознанный селектор», попробуйте явно привести суперпредставление к NSScrollView (которое будет работать, только если суперпредставление действительно является экземпляром NSScrollView):
[(NSScrollView *)[[aTextView superview] superview] setHasHorizontalScroller:NO];