Phi*_*hil 5 cocoa interface-builder xib swift3 xcode8
我正在尝试在XCode 8.3中创建基于XIB的应用程序,但是已经删除了启动没有Storyboard的项目的选项.以下是我设置项目的步骤:
在app delegate中:add var mainWindowController:NSWindowController?在applicationDidFinishLaunching中添加
让mainWindowController = MainWindowController(windowNibname:"MainWindowController")
mainWindowController.showWindow(个体经营)
self.mainWindowController = mainWindowController
在信息部分下的项目首选项中添加主nib文件基本名称MainWindowController
当我运行它时会显示我的窗口但是,我收到错误:
无法从(NSApplication)连接(窗口)插座到(NSWindow):缺少setter或实例变量
如果我添加任何控件并连接它们,我会得到一个类似的错误,说明它们无法连接.
菲尔
rob*_*off 11
在Xcode 9.0及更高版本(通过至少9.4 beta 1)中,您可以再次将Cocoa App项目模板配置为使用MainMenu.xib而不是a Main.storyboard.只需确保在为新项目选择选项时不选中"使用故事板"选项:
您的"主界面"设置应指向包含应用程序主菜单栏的故事板或XIB.您可以使用"应用程序"文件模板或"主菜单"文件模板创建包含主菜单栏的XIB.
以下是从头开始创建项目的步骤,该项目在一个XIB文件中具有主菜单栏,并且窗口在单独的XIB文件中:
使用"Cocoa Application"模板创建一个新项目.
删除"Main.storyboard"和"ViewController.swift"(或"ViewController.h"和"ViewController.m").
使用"用户界面"部分中的"主菜单"模板创建新文件("文件">"新建文件...").将其命名为"MainMenu"(Xcode将自动添加".xib"扩展名).
在目标的常规设置选项卡中,将主界面设置从"Main"更改为"MainMenu.xib".
在"MainMenu.xib"中,将NSObject添加到文档大纲中.将其自定义类设置为"AppDelegate".演示:
在"MainMenu.xib"中,将"文件所有者"的"委托"插座(应该具有"NSApplication"类)连接到"App Delegate"对象.要执行此操作,请按住控制键并从文档大纲中的"文件所有者"拖动到"应用程序代理".然后从弹出列表中选择"委托".
使用"Cocoa Class"模板创建一个新文件.将类名设置为"MainWindowController"并将子类名称设置为"NSWindowController".确保选中"还为用户界面创建XIB文件".
在"MainWindowController.swift"中,为windowNibName和添加覆盖owner:
class MainWindowController: NSWindowController {
override var windowNibName: String? { return "MainWindowController" }
override var owner: AnyObject { return self }
Run Code Online (Sandbox Code Playgroud)在"AppDelegate.swift"中,添加代码以创建并显示以下窗口MainWindowController:
class AppDelegate: NSObject, NSApplicationDelegate {
func applicationDidFinishLaunching(_ aNotification: Notification) {
mainWindowController = MainWindowController()
mainWindowController!.showWindow(nil)
}
var mainWindowController: MainWindowController?
Run Code Online (Sandbox Code Playgroud)您现在可以在"MainWindowController.xib"中创建其他对象,并将它们连接到"MainWindowController.swift"中的出口和操作.
| 归档时间: |
|
| 查看次数: |
2237 次 |
| 最近记录: |