Archived
1
Fork 0

Add proper window titles to macOS

Also adds window titles to posts under iPadOS
This commit is contained in:
redstrate 2020-03-16 12:36:52 -04:00
parent 45bbbf8945
commit 0527fc5499
2 changed files with 33 additions and 3 deletions

View file

@ -13,6 +13,8 @@ class PostViewController: UIViewController {
let documentsPath : URL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0].absoluteURL let documentsPath : URL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0].absoluteURL
let windowTitle = "Post"
override func viewWillAppear(_ animated: Bool) { override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated) super.viewWillAppear(animated)
@ -35,6 +37,12 @@ class PostViewController: UIViewController {
} }
} }
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
self.view.window?.windowScene!.title = windowTitle
}
@objc func closePopup() { @objc func closePopup() {
UIApplication.shared.requestSceneSessionDestruction((self.view.window?.windowScene!.session)!, options: nil, errorHandler: nil) UIApplication.shared.requestSceneSessionDestruction((self.view.window?.windowScene!.session)!, options: nil, errorHandler: nil)
} }
@ -96,6 +104,7 @@ extension PostViewController {
private let EditButtonToolbarIdentifier = NSToolbarItem.Identifier(rawValue: "OurButton") private let EditButtonToolbarIdentifier = NSToolbarItem.Identifier(rawValue: "OurButton")
private let ShareButtonToolbarIdentifier = NSToolbarItem.Identifier(rawValue: "OurButton2") private let ShareButtonToolbarIdentifier = NSToolbarItem.Identifier(rawValue: "OurButton2")
private let InfoButtonToolbarIdentifier = NSToolbarItem.Identifier(rawValue: "OurButton3") private let InfoButtonToolbarIdentifier = NSToolbarItem.Identifier(rawValue: "OurButton3")
private let TitlebarToolbarIdentifier = NSToolbarItem.Identifier(rawValue: "Titlebar")
extension PostViewController: NSToolbarDelegate { extension PostViewController: NSToolbarDelegate {
@objc func editTagsAction() { @objc func editTagsAction() {
@ -115,7 +124,7 @@ extension PostViewController: NSToolbarDelegate {
} }
func toolbarDefaultItemIdentifiers(_ toolbar: NSToolbar) -> [NSToolbarItem.Identifier] { func toolbarDefaultItemIdentifiers(_ toolbar: NSToolbar) -> [NSToolbarItem.Identifier] {
return [NSToolbarItem.Identifier.flexibleSpace, InfoButtonToolbarIdentifier, EditButtonToolbarIdentifier, ShareButtonToolbarIdentifier] return [NSToolbarItem.Identifier.flexibleSpace, TitlebarToolbarIdentifier, NSToolbarItem.Identifier.flexibleSpace, InfoButtonToolbarIdentifier, EditButtonToolbarIdentifier, ShareButtonToolbarIdentifier]
} }
func toolbarAllowedItemIdentifiers(_ toolbar: NSToolbar) -> [NSToolbarItem.Identifier] { func toolbarAllowedItemIdentifiers(_ toolbar: NSToolbar) -> [NSToolbarItem.Identifier] {
@ -147,6 +156,15 @@ extension PostViewController: NSToolbarDelegate {
return button return button
} }
if(itemIdentifier == TitlebarToolbarIdentifier) {
let barButtonItem = UIBarButtonItem(title: windowTitle, style: UIBarButtonItem.Style.plain, target: nil, action: nil)
let title = NSToolbarItem(itemIdentifier: itemIdentifier, barButtonItem: barButtonItem)
title.label = "Title"
return title
}
return nil return nil
} }
} }

View file

@ -6,6 +6,8 @@ class ViewController: UIViewController, UIDocumentPickerDelegate {
let documentsPath : URL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0].absoluteURL let documentsPath : URL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0].absoluteURL
let windowTitle = "Home"
func importFile(path: URL) { func importFile(path: URL) {
guard let appDelegate = guard let appDelegate =
UIApplication.shared.delegate as? AppDelegate else { UIApplication.shared.delegate as? AppDelegate else {
@ -53,7 +55,7 @@ class ViewController: UIViewController, UIDocumentPickerDelegate {
override func viewDidAppear(_ animated: Bool) { override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated) super.viewDidAppear(animated)
self.view.window?.windowScene!.title = "Home" self.view.window?.windowScene!.title = windowTitle
} }
@IBAction func importAction(_ sender: Any) { @IBAction func importAction(_ sender: Any) {
@ -110,6 +112,7 @@ class ViewController: UIViewController, UIDocumentPickerDelegate {
#if targetEnvironment(macCatalyst) #if targetEnvironment(macCatalyst)
private let OurButtonToolbarIdentifier = NSToolbarItem.Identifier(rawValue: "OurButton") private let OurButtonToolbarIdentifier = NSToolbarItem.Identifier(rawValue: "OurButton")
private let OurButtonToolbarIdentifier2 = NSToolbarItem.Identifier(rawValue: "OurButton2") private let OurButtonToolbarIdentifier2 = NSToolbarItem.Identifier(rawValue: "OurButton2")
private let TitlebarToolbarIdentifier = NSToolbarItem.Identifier(rawValue: "Titlebar")
extension ViewController: NSToolbarDelegate { extension ViewController: NSToolbarDelegate {
@objc func searchAction() { @objc func searchAction() {
@ -122,7 +125,7 @@ extension ViewController: NSToolbarDelegate {
func toolbarDefaultItemIdentifiers(_ toolbar: NSToolbar) -> [NSToolbarItem.Identifier] { func toolbarDefaultItemIdentifiers(_ toolbar: NSToolbar) -> [NSToolbarItem.Identifier] {
return [OurButtonToolbarIdentifier2, NSToolbarItem.Identifier.flexibleSpace, return [OurButtonToolbarIdentifier2, NSToolbarItem.Identifier.flexibleSpace,
OurButtonToolbarIdentifier] TitlebarToolbarIdentifier, NSToolbarItem.Identifier.flexibleSpace, OurButtonToolbarIdentifier]
} }
func toolbarAllowedItemIdentifiers(_ toolbar: NSToolbar) -> [NSToolbarItem.Identifier] { func toolbarAllowedItemIdentifiers(_ toolbar: NSToolbar) -> [NSToolbarItem.Identifier] {
@ -140,6 +143,15 @@ extension ViewController: NSToolbarDelegate {
return button return button
} }
if(itemIdentifier == TitlebarToolbarIdentifier) {
let barButtonItem = UIBarButtonItem(title: windowTitle, style: UIBarButtonItem.Style.plain, target: nil, action: nil)
let title = NSToolbarItem(itemIdentifier: itemIdentifier, barButtonItem: barButtonItem)
title.label = "Title"
return title
}
if (itemIdentifier == OurButtonToolbarIdentifier) { if (itemIdentifier == OurButtonToolbarIdentifier) {
let barButtonItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonItem.SystemItem.search, let barButtonItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonItem.SystemItem.search,
target: self, target: self,