Show the post tags in the window title
This commit is contained in:
parent
0527fc5499
commit
edc9b3a76b
4 changed files with 41 additions and 26 deletions
|
@ -4,6 +4,8 @@ import CoreData
|
|||
class EditTagsViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
|
||||
var post: Post?
|
||||
|
||||
var onDismiss: (() -> Void)? = nil
|
||||
|
||||
@IBOutlet weak var tableView: UITableView!
|
||||
@IBOutlet weak var tagField: UITextField!
|
||||
|
||||
|
@ -50,6 +52,10 @@ class EditTagsViewController: UIViewController, UITableViewDelegate, UITableView
|
|||
|
||||
@IBAction func doneAction(_ sender: Any) {
|
||||
dismiss(animated: true, completion: nil)
|
||||
|
||||
if onDismiss != nil {
|
||||
onDismiss!()
|
||||
}
|
||||
}
|
||||
|
||||
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
|
||||
|
|
|
@ -3,7 +3,7 @@ import CoreData
|
|||
import AVFoundation
|
||||
import AVKit
|
||||
|
||||
class PostViewController: UIViewController {
|
||||
class PostViewController: UIViewController, UIPopoverPresentationControllerDelegate {
|
||||
@IBOutlet weak var imageView: UIImageView?
|
||||
@IBOutlet weak var shareButton: UIBarButtonItem?
|
||||
|
||||
|
@ -13,7 +13,29 @@ class PostViewController: UIViewController {
|
|||
|
||||
let documentsPath : URL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0].absoluteURL
|
||||
|
||||
let windowTitle = "Post"
|
||||
func updateWindowTitle() {
|
||||
var windowTitle = "Untagged Post"
|
||||
|
||||
var tagList = ""
|
||||
|
||||
guard let postObject = post as? Post else {
|
||||
return
|
||||
}
|
||||
|
||||
for tag in postObject.tags! {
|
||||
if !tagList.isEmpty {
|
||||
tagList += ", "
|
||||
}
|
||||
|
||||
tagList += (tag as! Tag).name!
|
||||
}
|
||||
|
||||
if !tagList.isEmpty {
|
||||
windowTitle = tagList
|
||||
}
|
||||
|
||||
self.view.window?.windowScene!.title = windowTitle
|
||||
}
|
||||
|
||||
override func viewWillAppear(_ animated: Bool) {
|
||||
super.viewWillAppear(animated)
|
||||
|
@ -40,7 +62,7 @@ class PostViewController: UIViewController {
|
|||
override func viewDidAppear(_ animated: Bool) {
|
||||
super.viewDidAppear(animated)
|
||||
|
||||
self.view.window?.windowScene!.title = windowTitle
|
||||
updateWindowTitle()
|
||||
}
|
||||
|
||||
@objc func closePopup() {
|
||||
|
@ -64,7 +86,10 @@ class PostViewController: UIViewController {
|
|||
return
|
||||
}
|
||||
|
||||
newViewController.onDismiss = updateWindowTitle
|
||||
newViewController.post = self.post as? Post
|
||||
|
||||
segue.destination.popoverPresentationController?.delegate = self
|
||||
} else if segue.identifier == "showInfo" {
|
||||
guard let newViewController = segue.destination as? InfoViewController else {
|
||||
return
|
||||
|
@ -89,6 +114,10 @@ class PostViewController: UIViewController {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
func popoverPresentationControllerDidDismissPopover(_ popoverPresentationController: UIPopoverPresentationController) {
|
||||
updateWindowTitle()
|
||||
}
|
||||
}
|
||||
|
||||
extension PostViewController {
|
||||
|
@ -104,7 +133,6 @@ 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() {
|
||||
|
@ -124,7 +152,7 @@ extension PostViewController: NSToolbarDelegate {
|
|||
}
|
||||
|
||||
func toolbarDefaultItemIdentifiers(_ toolbar: NSToolbar) -> [NSToolbarItem.Identifier] {
|
||||
return [NSToolbarItem.Identifier.flexibleSpace, TitlebarToolbarIdentifier, NSToolbarItem.Identifier.flexibleSpace, InfoButtonToolbarIdentifier, EditButtonToolbarIdentifier, ShareButtonToolbarIdentifier]
|
||||
return [NSToolbarItem.Identifier.flexibleSpace, InfoButtonToolbarIdentifier, EditButtonToolbarIdentifier, ShareButtonToolbarIdentifier]
|
||||
}
|
||||
|
||||
func toolbarAllowedItemIdentifiers(_ toolbar: NSToolbar) -> [NSToolbarItem.Identifier] {
|
||||
|
@ -156,15 +184,6 @@ 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
|
||||
}
|
||||
}
|
||||
|
|
|
@ -21,7 +21,7 @@ class SceneDelegate: UIResponder, UIWindowSceneDelegate {
|
|||
toolbar.allowsUserCustomization = true
|
||||
|
||||
windowScene.titlebar!.toolbar = toolbar
|
||||
windowScene.titlebar!.titleVisibility = .hidden
|
||||
windowScene.titlebar!.titleVisibility = .visible
|
||||
|
||||
(window?.rootViewController as! UINavigationController).navigationBar.isHidden = true
|
||||
#endif
|
||||
|
|
|
@ -124,8 +124,7 @@ extension ViewController: NSToolbarDelegate {
|
|||
}
|
||||
|
||||
func toolbarDefaultItemIdentifiers(_ toolbar: NSToolbar) -> [NSToolbarItem.Identifier] {
|
||||
return [OurButtonToolbarIdentifier2, NSToolbarItem.Identifier.flexibleSpace,
|
||||
TitlebarToolbarIdentifier, NSToolbarItem.Identifier.flexibleSpace, OurButtonToolbarIdentifier]
|
||||
return [OurButtonToolbarIdentifier2, NSToolbarItem.Identifier.flexibleSpace, OurButtonToolbarIdentifier]
|
||||
}
|
||||
|
||||
func toolbarAllowedItemIdentifiers(_ toolbar: NSToolbar) -> [NSToolbarItem.Identifier] {
|
||||
|
@ -143,15 +142,6 @@ 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,
|
||||
target: self,
|
||||
|
|
Reference in a new issue