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

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

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

CocoaはMac OS X用のアプリケーションを構築する為の主要なフレームワークのひとつです。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

Xcode

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

Swift

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

Q&A

0回答

846閲覧

Swift NSViewとNSWindowの関係

退会済みユーザー

退会済みユーザー

総合スコア0

Cocoa

CocoaはMac OS X用のアプリケーションを構築する為の主要なフレームワークのひとつです。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

Xcode

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

Swift

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

0グッド

0クリップ

投稿2019/04/27 05:55

編集2019/04/28 02:03

viewとNSView,NSWindowの関係や役割がイマイチわかりません

NSWindowでウィンドウの設定をしたらウィンドウが二つ出てきました
一つは自分で呼び出したNSView(frame: NSRect( ... ))の引数通りのウィンドウ
もう一つはNSWindowでウィンドウの設定をしたウィンドウです

なぜこのようなことが起こったのでしょうか?
ちなみにコードでは

Swift

1myView = NSView(frame: NSRect(x: 0, y: 0, width: 800, height: 200 ) ) 23self.View = NSView(frame: NSRect(x: 0, y: 0, width: 1500, height: 200) )

という書き方もしています(関係があるかわかりませんが)
あとは下記の参考にしたコードもある。

自分のプログラム上の原因ではなく上記のことが起こりうる原因が知りたいので
コードは記載しませんが答えられるところまででいいのでよろしくお願いします。
(いじりすぎてごちゃごちゃなので恥ずかしい...)

参考にしたコード
https://joyplot.com/documents/2018/06/24/swift-nswindow-no-xib/
これ自体はできましたが
これを応用しようとしたら上記の自体に陥りました。

補足
思ったより簡単に再現できたので
コードを載せます

Swift

1import Cocoa 2import MetalKit 3 4class ViewController: NSViewController { 5 6 override func loadView() { 7 self.view = NSView(frame: NSRect(x: 0, y: 0, width: 300, height: 200)) 8 } 9}

swift

1 2import Cocoa 3 4@NSApplicationMain 5class AppDelegate: NSObject, NSApplicationDelegate { 6 7// private var meinWindow: NSWindow! = NSWindow(contentViewController: ViewController()) 8 9 var window: NSWindow! 10 11 func applicationDidFinishLaunching(_ aNotification: Notification) { 12 window.makeKeyAndOrderFront(nil) 13 } 14 15 func applicationWillFinishLaunching(_ notification: Notification) { 16 17 // ウィンドウの作成 18 window = NSWindow(contentViewController: ViewController()) 19 window.title = "New Window" 20 window.isOpaque = false 21 window.backgroundColor = NSColor(white: 1, alpha: 0.5) 22 window.center() 23 } 24 25 // ウィンドウが閉じられたらアプリも終了する 26 func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { 27 return true 28 } 29} 30

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

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

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

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

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

MasakiHori

2019/04/27 06:09 編集

情報がなさ過ぎて何もわかりません。 あなたが書いたコードを提示してください。 どの部分が必要なのかわからないのであれば、taratailの行数制限が許す限りのコードを提示してください。
退会済みユーザー

退会済みユーザー

2019/04/27 23:06

すみません それでしたらNSWindowとviewとNSViewの役割などを 簡単にでいいので教えてくださると助かります
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問