addsubview するときの view のお手軽な作成方法

文法ラウンドやメソッド暗記モードを経て、cocoa でアプリっぽいものを作成する機会が多くなったが、全然知られていない方法を一つ。

みんな大好き NSView だが、子供の view を作成して親 view に addsubview したいというときがしばしばある。

しかし、具体的な方法論がほとんど知られていない(笑)。

ワイは試行錯誤(といってもさほど時間はかからなかったが)の結果、以下のようにしている。

Xcode の + で UI パーツのライブラリを呼び出すダイアログを呼び出して、custom view をチョイス。

ここがキモだと思うのだが、これを親ビューが所属する Controller Scene に置く

すると上図のように Xcode 上でもしっかりと操作可能な形で配置される。

iOS 関係はわからんが、MacOS でこんな図は見たことがない。

追加した view を ChildView、元々あった view を ParentView とすると、ViewController の viewdidload あたりに

    _childview = [[ChildView alloc] initWithFrame:_parentview.frame];
    [_parentview addSubview:_childview];

としておくと、しっかりこのビューが生成される。

かなり便利な方法だと思うんだが、全然知られてないよね。

NSView の再描画

ところで MacOS の描画関係は Metal から入ったワイは、NSView は自動で再描画してくれるものだと思い込んでいたが、違うらしい。setNeedsDisplay メソッドで明示する。

 

クリックclose

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です