私はMacアプリケーションで作業しています。プラスの記号で緑色のボタンを押したときのように、初期ウィンドウを最大化状態にしたいのです。 私はフルスクリーンにしたくありません。OSXアプリケーション:ウィンドウを最大化する方法
答えて
NSScreenのvisibleFrame
をターゲットフレームとして使用して、ウィンドウを最大の空き領域に「ズーム」することができます。のは、window
があなたのNSWindowのIBOutletであるとしましょう:
if let screen = NSScreen.mainScreen() {
window.setFrame(screen.visibleFrame, display: true, animate: true)
}
例えば、AppDelegate.swiftに:
import Cocoa
@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate {
@IBOutlet weak var window: NSWindow!
func applicationDidFinishLaunching(aNotification: NSNotification) {
if let screen = NSScreen.mainScreen() {
window.setFrame(screen.visibleFrame, display: true, animate: true)
}
}
そのズーム状態でアプリが同じものではありません「最大化」。緑色のプラスアイコンはズームを示します。これは「このコンテンツに適したサイズ」を意味します。いくつかのアプリケーションでは、目に見えるフレームです(Eric D.が論じているように)が、ほとんど何でもかまいません。たとえば、Safariウィンドウをズームしてみてください。
実際に "最大化"して "ズーム"しないと仮定すると、エリックは正しい軌道に乗っていますが、より良い結果が得られます。まず、ウィンドウの画面があればそれを使うべきです。また、起動時にウィンドウのサイズ変更をアニメートしないでください(起動時に見苦しくなる可能性があるため)。
func applicationDidFinishLaunching(aNotification: NSNotification) {
if let screen = window.screen ?? NSScreen.mainScreen() {
window.setFrame(screen.visibleFrame, display: true)
}
}
あなたは、アプリケーションデリゲートでそれを置くのではなく、これを管理するためにNSWindowController
を使用して検討する必要があります。その場合は、windowDidLoad
に入力してください。ウィンドウコントローラはAppKitではかなり一般的なツールです(歴史的には共通ではないビューコントローラとは対照的です)。
実際にズームの動作が必要な場合は、NSWindowDelegate
メソッドwindowWillUseStandardFrame(_:defaultFrame:)
に慣れてください。一般的にzoom(_:)
は起動時に直接呼び出すべきではありません。なぜなら、それはアニメーション化されるためですが、デリゲート内でどのようなロジックを使用してフレームを計算するのかを決める必要があります。メイン画面ではなくウィンドウがある場合は、ウィンドウの画面に表示されるようにフレームを調整してください。
理想的には、ユーザーが表示されたフレームに強制するのではなく、使用した最後のフレームを賞賛する必要があります。それ以上のことを研究したいのであれば、ココアのframeAutosave
と呼ばれています。 Interface Builderでオートセーブ名を設定するだけで、ウィンドウコントローラが多少自動的にそれを管理するのに役立ちます。 (目に見えるフレームを取得するために最初の起動時にフレームを計算する必要があるため、少し複雑ですが、完全には自動ではありません)。
デフォルトフレームを任意の場合。それは大型モニターでは本当に巨大なことがあります(まだ30インチの映画館がたくさんありますが、27インチでさえかなり圧倒的です)。アプリによってはうまくいくこともありますが、ユーザーがそれを大きくできるようにしながら、最大初期サイズを定義する価値があることがよくあります。
こんにちは皆さん、本当にありがとうございます。
私はドキュメントベースのMacアプリケーションで作業しています。私はあなたが提供したコードをDocumentクラスのmakeWindowControllers()に入れ、それは魅力的に機能します。
ありがとうございました。ここで私が使用するコードです。
override func makeWindowControllers() {
// Returns the Storyboard that contains your Document window.
let storyboard = NSStoryboard(name: "Main", bundle: nil)
let windowController = storyboard.instantiateControllerWithIdentifier("Document Window Controller") as! NSWindowController
self.addWindowController(windowController)
if let screen = NSScreen.mainScreen() {
windowController.window?.setFrame(screen.visibleFrame, display: true, animate: true)
}
}
- 1. WPFウィンドウを最大限に最大化
- 2. Pythonを使用してplt.show()ウィンドウを最大化する方法
- 3. JFrameウィンドウを最大化する別の方法は?
- 4. Qt C++最小化と最大化ウィンドウ
- 5. 他のアプリケーション(VB .Net)の子ウィンドウを最大化する '
- 6. 外部アプリケーションのウィンドウをプログラムで最大化する(vb.net)
- 7. ウィンドウの最大化/最小化を無効にする
- 8. ウィンドウから最小化/最大化ボタンを削除する、OpenTK
- 9. JavaのJFrameウィンドウでデフォルトの最小化/最大化と閉じるボタンを非表示にする方法は?
- 10. Java JFramesを最大化されたウィンドウとして開始する方法
- 11. wxWidgetウィンドウへの "非最大化"状態を取得する方法
- 12. Delphi 2010内でアプリケーションを実行するときにIDEウィンドウを最大化させない方法
- 13. C#.Netで最小化して最大化する方法は?
- 14. 最大化されたウィンドウのサイズ
- 15. SetWinEventHookウィンドウ最大化されたイベント
- 16. 最大オープンファイルを増やす方法Mac OSX 10.6 for neo4jグラフデータベース?
- 17. Windows C++のアプリケーションを起動する方法を最大化するには?
- 18. ウィンドウを元の状態に戻す方法(復元または最大化)?
- 19. WPFウィンドウが最小化/最大化されない
- 20. アプリケーションのウィンドウを閉じる(OSX)
- 21. Androidアプリケーションで大量のテキストデータを暗号化する最も良い方法は?
- 22. WPFウィンドウのスタイル=なしアプリケーションの初期化後に最大化するとタスクバーをカバーする
- 23. C++でウィンドウを最大化するときの問題
- 24. 起動時にMacVimのウィンドウを最大化する
- 25. 最小化と最大化ボタンをwxDialogオブジェクトに表示する方法
- 26. リッチで最小化と最大化ボタンを追加する方法:ポップアップパネルウィンドウ
- 27. MFC:ボタンのクリックでウィンドウを最小化する方法は?
- 28. ウィンドウが最小化するのを防ぐ方法は?
- 29. 最小化されたwxPythonウィンドウをポップアップする方法
- 30. ウィンドウが最大化されているときのwpfウィンドウの移動方法(ドラッグ&ドロップ)
私はマックの世界では非常に新しいです。私はちょうどこのコードをNSViewControllerに入れます:viewDidLoadとその動作しませんあなたはこのコードを正確にどこに置くことができます。これは私のコードです。私の答えは例でNSScreen.mainScreen(){ self.view.window?.setFrame(screen.visibleFrame、display:true、animate:true) } –
私の答えを更新しました。 – Moritz
Swift 3のアップデート: '.mainScreen()'を '.main()'に置き換えてください。 – Moritz