1

swift 3.0.1 を使用して、maxOS 10.11.6 の Xocode 8.0 でドキュメント ベースの Cocoa プロジェクトを作成しました。mainMenu.xib、document.xib を削除し、infolist を変更してから、独自の main 関数を追加しました。私は Interface Builder をまったく使用していないためです。

Document.swift で、windowNibFille 変数を削除し、makeWindowController() 関数をオーバーライドします。

override func makeWindowControllers() {
    let mainWindow = NSWindow(contentRect: NSMakeRect(0, 0, NSScreen.main()!.frame.width/2, NSScreen.main()!.frame.height/2), styleMask: [NSTitledWindowMask, NSResizableWindowMask, NSMiniaturizableWindowMask, NSClosableWindowMask], backing: NSBackingStoreType.buffered, defer: false)
    mainWindow.isOpaque = false
    mainWindow.center()
    mainWindow.isMovableByWindowBackground = true
    mainWindow.makeKeyAndOrderFront(nil)
    let mainWindowController = NSWindowController(window: mainWindow)
    addWindowController(mainWindowController)
}

私は他に何もしませんでした。プロジェクトをビルドすると、コンパイルされたアプリを実行するメニュー、ウィンドウ、ドキュメントを取得できません。これは、NSDocumentController インスタンス、NSDocuement、NSWindow インスタンスをインスタンス化していないためです。

しかし、彼の現実​​は、私がプロジェクトを実行したということです。無題という名前のウィンドウが表示されます。これは厄介です。ほとんど空のプロジェクトに目に見えないコードが存在するようです。無題のドキュメントが開かれる前に何かをしたいのですが、NSDocumentController インスタンスが自分の制御外で作成された場合、どのようにすればよいですか?

4

0 に答える 0