Viv*_*ani 3 macos cocoa xib nsstoryboard
我有一个带有mainmenu.xib的应用程序,由于各种原因我想将它迁移到故事板.有没有办法在不创建新项目的情况下执行此操作?
这是怎么做的:
使用故事板创建新项目.我们只是用它来复制一个在对象库中找不到的小东西.
回到现有项目中,在现有项目中添加一个新的storyboard ui文件(例如Main.storyboard).与启动新项目时不同,故事板文件将完全空白.
从新项目的故事板中,复制"应用程序场景"并将其粘贴到现有项目的故事板中.这是一种解决方法,因为无法从对象库获取应用程序场景.执行此操作后,通过查看Connections检查器(右侧面板),检查App Delegate对象的"委托"属性是否具有"应用程序"的引用插座.如果不是,请将它们链接在一起.
在对象库(右侧面板>下面的对象库)中,添加窗口控制器.这将添加窗口控制器场景和视图控制器场景.
如果使用自定义类,请引用窗口控制器/窗口/视图控制器/视图的相应类.
打开早期的xib文件并复制之前使用的任何视图.
在现有项目的xcproj文件中,转到构建目标的info部分,并使用" NSMainStoryboardFile" 替换xib字典键/值作为键,将"Main"(或任何故事板文件称为sans fileextension)替换为值.
额外说明:
如果您使用自定义视图控制器并将它们迁移到故事板,请确保它们允许通过initWithCoder进行初始化.
如果您需要从appdelegate获取viewcontroller,则不能通过NSStoryboard的instantiateWithName方法执行此操作,这将创建一个新实例.而是执行以下操作:
NSApplication *application = [NSApplication sharedApplication];
NSWindow *window = application.windows[0];
self.myCustomViewController = (MyCustomViewController *)window.contentViewController;
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
647 次 |
| 最近记录: |