NSStackViewに対して動的に項目を追加する方法について(Objective-C/MacOSアプリ)
MacOS用のデスクトップアプリの開発をしております。
NSStackViewに対して、プログラムで動的にTextFieldやボタンなどの項目を追加する方法を教えていただけませんでしょうか。
下記に検証で作成したViewのソースコードを記載します。
この中で背景色を変更する
[[NSColor whiteColor] set];
NSRectFill(dirtyRect);
の部分は効いているものの、その下のNSTextField追加処理は画面に反映されません。
なお、作成したTestViewは下記のようにメインのViewにaddSubviewする形で開いています。
[view_main addSubview:view_TestView];
根本的に方法が間違っている可能性もあるかと思っておりますが、是非アドバイスいただけませんでしょうか。
また、情報として不足しているものがございましたらお手数ですがご指摘いただけると助かります。
開発環境、言語
XCode 10.1
Objective-C
Project Format:XCode 10.0-compatible
〜TestView.h〜
#import <Cocoa/Cocoa.h>
NS_ASSUME_NONNULL_BEGIN
@interface TestView : NSStackView<NSStackViewDelegate>
@end
NS_ASSUME_NONNULL_END
〜TestView.m〜
#import "TestView.h"
@implementation TestView
- (void)drawRect:(NSRect)dirtyRect {
[super drawRect:dirtyRect];
[[NSColor whiteColor] set];
NSRectFill(dirtyRect);
// Drawing code here.
NSTextField *ctrl = [[NSTextField alloc]init];
ctrl.stringValue = @"ここはテキストエリアです。";
[self addSubview:ctrl];
}
@end