Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 如何使用带有弹出式视图控制器的自定义视图_Objective C_Macos_Cocoa_Nsview - Fatal编程技术网

Objective c 如何使用带有弹出式视图控制器的自定义视图

Objective c 如何使用带有弹出式视图控制器的自定义视图,objective-c,macos,cocoa,nsview,Objective C,Macos,Cocoa,Nsview,我在标准NSView上创建了一个弹出视图。弹出窗口显示正常。但是我想显示一个通过编程创建的视图。因此,我设置了popupViewController的视图代理的视图 NSView* editorView = [self.sharedUI editorViewForElementKey:classKey];// Creates a custom view and its subviews self.popoverViewController.view = editorView; program

我在标准NSView上创建了一个弹出视图。弹出窗口显示正常。但是我想显示一个通过编程创建的视图。因此,我设置了popupViewController的视图代理的视图

NSView* editorView = [self.sharedUI editorViewForElementKey:classKey];// Creates a custom view and its subviews
self.popoverViewController.view  = editorView;  programmatically
[[self editorPopover]showRelativeToRect:[elementViewItem] ofView:elementViewItem preferredEdge:NSMaxYEdge]; // shows the View. 
弹出窗口出现,窗口大小似乎是我新生成的视图的大小,但它是空的

为了生成我的“editorView”,我使用了一个派生类,并使用以下内容生成了我的子视图:

NSView *view;
view = [[NSTextField alloc]initWithFrame:control.rect];
((NSTextField*)view).stringValue = control.controlAttributeName;   
[((NSTextField*)view) setBezeled:NO];
[((NSTextField*)view) setDrawsBackground:NO];
[((NSTextField*)view) setEditable:NO];
[((NSTextField*)view) setSelectable:NO];   
[self addSubview:view];

我做错了什么?我在监视什么吗?

我注意到,如果我在弹出窗口的nib文件中放置一个自定义视图,并在该视图中添加一些NSTEXT字段,它们将显示出来。订单有什么问题吗?我的自定义视图必须在弹出窗口的nib文件上处于“活动”状态吗?self.popoverViewController是什么?它是NSViewController实例吗?如果是这样,我希望在尝试设置其视图时出现错误,因为这不是属性,而是请求创建它时使用的视图的方便方式。PopoverViewController是从NSviewController派生的默认Popover视图控制器。您是对的:。视图不是属性。也许使用setView会带来成功。我最终直接处理了Popovers视图实例,而没有创建一个新实例。。。正确的操作过程是使用视图创建视图控制器。在创建/建立视图控制器后,不会设置其视图。