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 windowTitle = "Post"
override func viewWillAppear(_ animated: Bool) {
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() {
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 ShareButtonToolbarIdentifier = NSToolbarItem.Identifier(rawValue: "OurButton2")
private let InfoButtonToolbarIdentifier = NSToolbarItem.Identifier(rawValue: "OurButton3")
private let TitlebarToolbarIdentifier = NSToolbarItem.Identifier(rawValue: "Titlebar")
extension PostViewController: NSToolbarDelegate {
@objc func editTagsAction() {
@ -115,7 +124,7 @@ extension PostViewController: NSToolbarDelegate {
}
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] {
@ -147,6 +156,15 @@ extension PostViewController: NSToolbarDelegate {
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
}
}

View file

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