質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
button

HTMLで用いる<button>タグです。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

0回答

571閲覧

XcodeでRunしないとウインドウコンテンツが表示されない

shuntar30

総合スコア80

button

HTMLで用いる<button>タグです。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2020/05/17 02:07

編集2020/06/21 04:58

発生している問題

Trigged Segueでボタンを押したら遷移するようにしたはずなのですが、なぜかXcodeでRunしないとウインドウは表示されますがViewControllerが表示されません。
エラーはありません。

スクリーンショット:

問題のボタンとTrigged Segue
ViewControllerが表示されない

ソースコード

・NewViewController.swift(問題のボタンがあるViewControllerです)

Swift

1// 2// NewViewController.swift 3// Run 4// 5// Created by ________ ________ on 5/14/20. 6// Copyright © 2020 ________ ________. All rights reserved. 7// 8 9import Cocoa 10 11class NewViewController: NSViewController { 12 13 @IBOutlet weak var name: NSTextField! 14 @IBOutlet weak var path: NSPopUpButton! 15 @IBOutlet weak var createProject: NSTextField! 16 17 var filePath = "" 18 var folderPath = "" 19 20 override func viewDidLoad() { 21 super.viewDidLoad() 22 // Do view setup here. 23 24 notCreateProject.isHidden = true 25 } 26 27 override func prepare(for segue: NSStoryboardSegue, sender: Any?) { 28 if segue.identifier == "new" { 29 notCreateProject.isHidden = true 30 31 if name.stringValue.isEmpty { 32 notCreateProject.isHidden = false 33 return 34 } 35 36 var savePath = "/Users/(NSUserName() + "/" + path.selectedItem!.title + "/" + name.stringValue)" 37 if path.selectedItem!.title == NSUserName() { 38 savePath = "/Users/(NSUserName())/(name.stringValue)" 39 } else if path.selectedItem!.title == "デスクトップ" { 40 savePath = "/Users/(NSUserName())/Desktop/(name.stringValue)" 41 } else if path.selectedItem!.title == "書類" { 42 savePath = "/Users/(NSUserName())/Documents/(name.stringValue)" 43 } else if path.selectedItem!.title == "アプリケーション" { 44 savePath = "/Users/(NSUserName())/Applications/(name.stringValue)" 45 } else if path.selectedItem!.title == "ダウンロード" { 46 savePath = "/Users/(NSUserName())/Downloads/(name.stringValue)" 47 } else if path.selectedItem!.title == "ムービー" { 48 savePath = "/Users/(NSUserName())/Movies/(name.stringValue)" 49 } else if path.selectedItem!.title == "ミュージック" { 50 savePath = "/Users/ (NSUserName())/Music/(name.stringValue)" 51 } else if path.selectedItem!.title == "ピクチャ" { 52 savePath = "/Users/(NSUserName())/Pictures/(name.stringValue)" 53 } 54 55 print(savePath) 56 do { 57 try createDir(savePath) 58 } catch { 59 notCreateProject.isHidden = false 60 return 61 } 62 do { 63 try writeTextFile("<!DOCTYPE html>\n<html>\n <head>\n <title>Hello World</title>\n </head>\n <body>\n Hello World!\n </body>\n</html>", fileName: "index.html", path: savePath) 64 } catch { 65 notCreateProject.isHidden = false 66 return 67 } 68 self.filePath = name.stringValue + "/index.html" 69 self.folderPath = savePath 70 71 print(self.filePath) 72 73 // Editorに値渡し 74 let editor = segue.destinationController as! Editor 75 editor.pathString = self.filePath 76 editor.folderPath = self.folderPath 77 editor.name = self.name.stringValue 78 editor.preVC = "n" 79 } 80 } 81 82 func writeTextFile(_ str: String, fileName: String, path: String) throws { 83 84 // 作成するテキストファイルの名前 85 let textFileName = fileName 86 let initialText = str 87 88 let documentDirectoryFileURL = path 89 90 // ディレクトリのパスにファイル名をつなげてファイルのフルパスを作る 91 let targetTextFilePath = documentDirectoryFileURL + "/" + textFileName 92 93 print("書き込むファイルのパス: (targetTextFilePath)") 94 95 do { 96 try initialText.write(to: URL(fileURLWithPath: targetTextFilePath), atomically: true, encoding: String.Encoding.utf8) 97 } catch let error as NSError { 98 print("failed to write: (error)") 99 throw NSError(domain: "failed to write: (error)", code: 870, userInfo: nil) 100 } 101 } 102 103 func createDir(_ dirPath: String) throws { 104 // ディレクトリを作成します。 105 let fileManager = FileManager.default 106 do { 107 try fileManager.createDirectory(atPath: dirPath, withIntermediateDirectories: true, attributes: nil) 108 } catch let error { 109 // エラーの場合 110 throw NSError(domain: "エラーが発生しました。ディレクトリの作成に失敗しました。(error)", code: -5, userInfo: nil) 111 } 112 } 113 114} 115

Editor.swift

swift

1// 2// Editor.swift 3// Run 4// 5// Created by ________ ________ on 5/14/20. 6// Copyright © 2020 ________ ________. All rights reserved. 7// 8 9import Cocoa 10import WebKit 11import AVKit 12import CoreImage 13 14class Editor: NSViewController, NSPathControlDelegate, NSTableViewDelegate, NSTableViewDataSource, NSTextViewDelegate, NSTextDelegate, WKUIDelegate { 15 16 @IBOutlet weak var path: NSPathControl! 17 @IBOutlet weak var Editor: NSTextView! 18 @IBOutlet weak var runView: WKWebView! 19 @IBOutlet weak var tableView: NSTableView! 20 @IBOutlet weak var player: AVPlayerView! 21 @IBOutlet weak var imageView: NSImageView! 22 @IBOutlet weak var scView: NSScrollView! 23 @IBOutlet weak var titleLabel: NSTextField! 24 @IBOutlet weak var customImageView: NSView! 25 @IBOutlet weak var sizeLabel: NSTextField! 26 27 var pathString: String? 28 var folderPath: String? 29 var name = "" 30 var selectedName = "" 31 var preVC = "" 32 33 var files: [String] = [] 34 35 override func viewDidLoad() { 36 super.viewDidLoad() 37 // Do view setup here. 38 39 do { 40 let contentUrls = try FileManager.default.contentsOfDirectory(at: URL(fileURLWithPath: folderPath!), includingPropertiesForKeys: nil) 41 files = contentUrls.map{$0.lastPathComponent} 42 } catch let error { 43 print(error) 44 } 45 46 Editor.delegate = self 47 path.delegate = self 48 } 49 50 // 省略 51} 52

知りたいこと

なぜこうなるのかと、解決方法が知りたいです。

回答お願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問