私はあなたの質問で少し混乱していますが、私はhttps://github.com/NSGod/CustomSCNViewであなたが探しているかもしれないサンプルプロジェクトを作成しました。
まず、ストーリーボードにはViewController
のビューに2 CustomSCNView
が並べてあります。あなたと同じように、IBパレットの2 SCNView
をビューにドラッグし、カスタムクラスをCustomSCNView
に設定しました。
#import <Cocoa/Cocoa.h>
#import <SceneKit/SceneKit.h>
@interface CustomSCNView : SCNView
@property (nonatomic, assign) BOOL allowsRotation;
@end
あなたが見ることができるが、それは他のオブジェクトを設定することができallowsRotation
性質を持っています
第二には、次のように定義されてCustomSCNView
クラスです。
NO
以外allowsRotation
のデフォルト値を設定するには、あなたがビューを設定したときと同じようにInterface Builderで使用しているものであるinitWithCoder:
を上書きすることができますが:
#import "CustomSCNView.h"
@implementation CustomSCNView
- (id)initWithCoder:(NSCoder *)coder {
if ((self = [super initWithCoder:coder])) {
_allowsRotation = YES;
}
return self;
}
@end
のViewControllerが、その後2 IBOutlet
を持っていますsを両方ともCustomSCNView
に設定します。
#import <Cocoa/Cocoa.h>
#import <SceneKit/SceneKit.h>
@class CustomSCNView;
@interface ViewController : NSViewController
@property (weak) IBOutlet CustomSCNView *sView1;
@property (weak) IBOutlet CustomSCNView *sView2;
@end
ViewController。M:
#import "ViewController.h"
#import "CustomSCNView.h"
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
_sView1.allowsRotation = NO;
_sView2.allowsRotation = YES;
}
@end
あなたはviewDidLoad
で、あなたが好きに両方のビューのallowsRotation
プロパティを設定することができていることがわかります。このアプリケーションを実行すると、CustomSCNView
という2つのインスタンスが自動的に作成されます(initWithCoder:
経由).styleboard/nibファイルがロードされます。既に持っている2つの既存のインスタンスのプロパティを設定できるように、CustomSCNView
の別のインスタンスを作成する必要はありません。
私はばかだが、必要な質問がある、他のクラスのCustomSCNViewのインポートステートメントを追加しましたか? – fsb
'-initWithFrame:options:'を試してみましたか? – mnuages
そうですね。私はCustomSCNViewクラスのinitメソッドを作成しませんでした。私は[[CustomSCNView alloc] init]が動作すると仮定しました。 –