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
|
@ -3,6 +3,8 @@ import CoreData
|
||||||
|
|
||||||
class EditTagsViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
|
class EditTagsViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
|
||||||
var post: Post?
|
var post: Post?
|
||||||
|
|
||||||
|
var onDismiss: (() -> Void)? = nil
|
||||||
|
|
||||||
@IBOutlet weak var tableView: UITableView!
|
@IBOutlet weak var tableView: UITableView!
|
||||||
@IBOutlet weak var tagField: UITextField!
|
@IBOutlet weak var tagField: UITextField!
|
||||||
|
@ -50,6 +52,10 @@ class EditTagsViewController: UIViewController, UITableViewDelegate, UITableView
|
||||||
|
|
||||||
@IBAction func doneAction(_ sender: Any) {
|
@IBAction func doneAction(_ sender: Any) {
|
||||||
dismiss(animated: true, completion: nil)
|
dismiss(animated: true, completion: nil)
|
||||||
|
|
||||||
|
if onDismiss != nil {
|
||||||
|
onDismiss!()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
|
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
|
||||||
|
|
|
@ -3,7 +3,7 @@ import CoreData
|
||||||
import AVFoundation
|
import AVFoundation
|
||||||
import AVKit
|
import AVKit
|
||||||
|
|
||||||
class PostViewController: UIViewController {
|
class PostViewController: UIViewController, UIPopoverPresentationControllerDelegate {
|
||||||
@IBOutlet weak var imageView: UIImageView?
|
@IBOutlet weak var imageView: UIImageView?
|
||||||
@IBOutlet weak var shareButton: UIBarButtonItem?
|
@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 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) {
|
override func viewWillAppear(_ animated: Bool) {
|
||||||
super.viewWillAppear(animated)
|
super.viewWillAppear(animated)
|
||||||
|
@ -40,7 +62,7 @@ class PostViewController: UIViewController {
|
||||||
override func viewDidAppear(_ animated: Bool) {
|
override func viewDidAppear(_ animated: Bool) {
|
||||||
super.viewDidAppear(animated)
|
super.viewDidAppear(animated)
|
||||||
|
|
||||||
self.view.window?.windowScene!.title = windowTitle
|
updateWindowTitle()
|
||||||
}
|
}
|
||||||
|
|
||||||
@objc func closePopup() {
|
@objc func closePopup() {
|
||||||
|
@ -64,7 +86,10 @@ class PostViewController: UIViewController {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
newViewController.onDismiss = updateWindowTitle
|
||||||
newViewController.post = self.post as? Post
|
newViewController.post = self.post as? Post
|
||||||
|
|
||||||
|
segue.destination.popoverPresentationController?.delegate = self
|
||||||
} else if segue.identifier == "showInfo" {
|
} else if segue.identifier == "showInfo" {
|
||||||
guard let newViewController = segue.destination as? InfoViewController else {
|
guard let newViewController = segue.destination as? InfoViewController else {
|
||||||
return
|
return
|
||||||
|
@ -89,6 +114,10 @@ class PostViewController: UIViewController {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func popoverPresentationControllerDidDismissPopover(_ popoverPresentationController: UIPopoverPresentationController) {
|
||||||
|
updateWindowTitle()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
extension PostViewController {
|
extension PostViewController {
|
||||||
|
@ -104,7 +133,6 @@ 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() {
|
||||||
|
@ -124,7 +152,7 @@ extension PostViewController: NSToolbarDelegate {
|
||||||
}
|
}
|
||||||
|
|
||||||
func toolbarDefaultItemIdentifiers(_ toolbar: NSToolbar) -> [NSToolbarItem.Identifier] {
|
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] {
|
func toolbarAllowedItemIdentifiers(_ toolbar: NSToolbar) -> [NSToolbarItem.Identifier] {
|
||||||
|
@ -156,15 +184,6 @@ 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
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,7 +21,7 @@ class SceneDelegate: UIResponder, UIWindowSceneDelegate {
|
||||||
toolbar.allowsUserCustomization = true
|
toolbar.allowsUserCustomization = true
|
||||||
|
|
||||||
windowScene.titlebar!.toolbar = toolbar
|
windowScene.titlebar!.toolbar = toolbar
|
||||||
windowScene.titlebar!.titleVisibility = .hidden
|
windowScene.titlebar!.titleVisibility = .visible
|
||||||
|
|
||||||
(window?.rootViewController as! UINavigationController).navigationBar.isHidden = true
|
(window?.rootViewController as! UINavigationController).navigationBar.isHidden = true
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -124,8 +124,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] {
|
||||||
|
@ -142,15 +141,6 @@ 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,
|
||||||
|
|
Reference in a new issue