Variable bei NSAlert verarbeiten

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Variable bei NSAlert verarbeiten

    Hallo,

    ich erarbeite gerade eine Aufgabe. Ich soll eine wiederverwendbare Fehlermeldung erzeugen. Dies beinhaltet das die Überschrift und der Text angepasst werden kann.

    Meine Überlegung hier ist das ich durch einen NSAlert die Eingabe abfrage und der User die Überschrift und den Text eingeben kann. Soweit so gut.
    Mein Problem ist das die Eingabe nicht weiterverarbeitet wird, ich finde keinen Fehler ?( kann mir da jemand helfen mir einen Denkanstoss zu geben?

    Ich stehe noch am Anfang bei meinen Kenntnissen. Bitte habt Verständnis dafür.

    Quellcode

    1. //
    2. // ViewController.swift
    3. // OBJC9_Bildbetrachter
    4. //
    5. // Created by Yvonne Beyer on 05.04.20.
    6. // Copyright © 2020 Yvonne Beyer. All rights reserved.
    7. //
    8. import Cocoa
    9. class ViewController: NSViewController {
    10. var ueberschrift: String!
    11. var text: String!
    12. @IBOutlet weak var bildAnzeige: NSImageView!
    13. @IBOutlet weak var bildName: NSTextField!
    14. func infoMeldung() {
    15. if bildName == nil {
    16. let infoMeldung: NSAlert = NSAlert()
    17. infoMeldung.messageText = ueberschrift
    18. infoMeldung.informativeText = text
    19. infoMeldung.runModal()
    20. }
    21. }
    22. @IBAction func Meldung(_ sender: NSButton) {
    23. meldung()
    24. }
    25. func meldung() {
    26. let eingabeMessage = NSAlert()
    27. eingabeMessage.messageText = "Überschrift"
    28. eingabeMessage.informativeText = "Bitte geben Sie die Überschrift und den Text der Meldung ein!"
    29. //Button zum beenden und hinzufügen erzeugen
    30. eingabeMessage.addButton(withTitle: "Hinzufügen")
    31. eingabeMessage.addButton(withTitle: "Beenden")
    32. //Eingabefeld erzeugen
    33. let eingabeUeberschrift = NSTextField(frame: NSRect(x: 0, y: 2, width: 200, height: 24))
    34. let eingabeText = NSTextField(frame: NSRect(x: 0, y: 28, width: 200, height: 24))
    35. let zeilen = NSStackView(frame: NSRect(x: 0, y: 0, width: 200, height: 58))
    36. zeilen.addSubview(eingabeUeberschrift)
    37. //Variable zur Verwendung in der Überschrift der Meldung infoMeldung
    38. ueberschrift = eingabeUeberschrift.stringValue
    39. zeilen.addSubview(eingabeText)
    40. //Variable zur Verwendung in des Textes der Meldung infoMeldung
    41. text = eingabeText.stringValue
    42. eingabeMessage.accessoryView = zeilen
    43. eingabeMessage.runModal()
    44. }
    45. @IBAction func beenden(_ sender: Any) {
    46. NSApplication.shared.terminate(self)
    47. }
    48. @IBAction func oeffnen(_ sender: Any) {
    49. if let meinBild = NSImage(contentsOfFile: bildName.stringValue) {
    50. bildAnzeige.image = meinBild }
    51. else {
    52. let meineMeldung: NSAlert = NSAlert()
    53. meineMeldung.messageText = ueberschrift
    54. meineMeldung.informativeText = text
    55. meineMeldung.runModal()
    56. }
    57. }
    58. @IBAction func meinDialog(_ sender: Any) {
    59. //den Dialog erzeugen
    60. let meinDialog: NSOpenPanel = NSOpenPanel()
    61. meinDialog.prompt = "Öffnen"
    62. meinDialog.allowedFileTypes = NSImage.imageTypes
    63. //wurde etwas ausgewählt?
    64. if meinDialog.runModal() == NSApplication.ModalResponse.OK {
    65. let meineDatei = meinDialog.url?.path
    66. bildName.stringValue = meineDatei!
    67. //das Bild über die eigene Methode laden
    68. oeffnen(sender)
    69. }
    70. }
    71. override func viewDidLoad() {
    72. super.viewDidLoad()
    73. // Do any additional setup after loading the view.
    74. }
    75. override var representedObject: Any? {
    76. didSet {
    77. // Update the view, if already loaded.
    78. }
    79. }
    80. }
    Alles anzeigen