[Obj-C] 10 GUIアプリ : NSScrollView, NSTextView

[M1 Mac, Big Sur 11.6.5, no Xcode]

垂直スクロールバー付きNSTextViewを配置しました。

NSScrollViewを配置してからNSTextViewをはめ込むという手法です。

Apple公式ドキュメントの内容を丸々拝借しました。直接リンクでアクセス可能です。

<該当箇所のみ>

NSScrollView* scrollview;
NSTextView* theTextView;

// NSScrollView
scrollview = [[[NSScrollView alloc] initWithFrame:NSMakeRect(20, 265-100-155, 320, 100)] autorelease];
NSSize contentSize = [scrollview contentSize];
[scrollview setBorderType:NSNoBorder];
[scrollview setHasVerticalScroller:YES];
[scrollview setHasHorizontalScroller:NO];
[scrollview setAutoresizingMask:NSViewWidthSizable | NSViewHeightSizable];

// NSTextView
theTextView = [[NSTextView alloc] initWithFrame:NSMakeRect(0, 0, contentSize.width, contentSize.height)];
[theTextView setMinSize:NSMakeSize(0.0, contentSize.height)];
[theTextView setMaxSize:NSMakeSize(FLT_MAX, FLT_MAX)];
[theTextView setVerticallyResizable:YES];
[theTextView setHorizontallyResizable:NO];
[theTextView setAutoresizingMask:NSViewWidthSizable];
[[theTextView textContainer] setContainerSize:NSMakeSize(contentSize.width, FLT_MAX)];
[[theTextView textContainer] setWidthTracksTextView:YES];

[scrollview setDocumentView:theTextView];

Putting an NSTextView Object in an NSScrollView