说实话,我甚至不知道从哪里开始.我觉得我已经在圈子里走了好几个小时尝试不同的事情.
我的问题是如何在IB中配置NSWindowControllers,NSViewControllers和NSViews,然后访问层次结构中的每个,以使用单个NSWindowController切换出NSViewControllers ...
我从Apple网站开始使用此代码,并尝试根据我的情况对其进行更改:https: //developer.apple.com/library/mac/samplecode/ViewController/Listings/MyWindowController_m.html#//apple_ref/doc/ UID/DTS10004233-MyWindowController_m-DontLinkElementID_12
我有一个小应用程序,有2个视图需要根据用户交互来回切换.我们称之为drop_view和table_view.Drop_view是在启动时加载的视图.我的两个视图都在单独的nib文件中配置:
RADropViewController.xib
RADropViewController.m
RADropViewController.h
RADropView.m
RADropView.h
Run Code Online (Sandbox Code Playgroud)
RADropViewController.xib
RADropViewController.m
RADropViewController.h
RADropView.m
RADropView.h
Run Code Online (Sandbox Code Playgroud)
每个笔尖都有一个文件所有者,第一响应者,应用程序,视图图标和对象.File的Owner设置为控制器类,View Icon设置为View类,Object图标设置为View Controller类.
然后我有一个带窗口控制器的窗口控制器笔尖.
RAWindowController.xib
RAWindowController.h
RAWindowController.m
Run Code Online (Sandbox Code Playgroud)
nib将文件所有者设置为RAWindowController,将Window设置为NSWindow,将对象设置为RAWindowContoller.我在这个笔尖的窗口中也有一个自定义视图,因为在Apple示例中有一个NSView插座,我在所有研究中读取了stackoverflow,"通常有一个带有主机视图的窗口控制器,用于托管不同的NSWindowControllers).
网点是:
文件的所有者
Outlets
myTargetView -> Custom View
Referencing Outlets
delegate -> Window - Window
Run Code Online (Sandbox Code Playgroud)
窗口 - 窗口
Outlets
delegate -> File's Owner
Referencing Outlets
window -> Window Controller
Run Code Online (Sandbox Code Playgroud)
窗口控制器
Outlets
myTargetView -> Custom View
window -> Window - Window
Run Code Online (Sandbox Code Playgroud)
这是我的RAWindowcontroller.h
@class RADropViewController, RATableViewController, RAWindowView;
@interface RAWindowController : NSWindowController
{
IBOutlet NSView *myTargetView;
} …Run Code Online (Sandbox Code Playgroud)