Hallo zusammen,
ich verzweifle an meiner Aufgabe. Ich versuche in einem NSImageView zwei Bilder, die vorher vom User eingefügt worden sind, mit der Klasse NSTimer wechseln zu lassen. Hierfür habe ich einen Button erstellt der den Timer startet und wieder beendet. Nur wird leider der Timer nicht gestartet
Vielleicht kann mir jemand ein Tipp geben was ich hier eventuell vergessen habe oder falsch mache. Ich habe schon viele Varianten versucht aber komme gerade nicht weiter.
Vielen Dank schon einmal.
Alles anzeigen
ich verzweifle an meiner Aufgabe. Ich versuche in einem NSImageView zwei Bilder, die vorher vom User eingefügt worden sind, mit der Klasse NSTimer wechseln zu lassen. Hierfür habe ich einen Button erstellt der den Timer startet und wieder beendet. Nur wird leider der Timer nicht gestartet
Vielleicht kann mir jemand ein Tipp geben was ich hier eventuell vergessen habe oder falsch mache. Ich habe schon viele Varianten versucht aber komme gerade nicht weiter.
Vielen Dank schon einmal.
Quellcode
- import Cocoa
- class ViewController: NSViewController {
- var timerBild: Timer!
- var meinBild1: NSImage!
- var meinBild2: NSImage!
- func meldungHinzugefuegt() {
- let meldungHinzugefuegt: NSAlert = NSAlert()
- meldungHinzugefuegt.messageText = "Information"
- meldungHinzugefuegt.informativeText = "Das Bild \(bildName.stringValue) wurde eingefügt!"
- meldungHinzugefuegt.runModal()
- }
- func fehlerMeldung() {
- let meineMeldung: NSAlert = NSAlert()
- meineMeldung.messageText = "Fehler"
- meineMeldung.informativeText = "Die Grafik konnte nicht geladen werden. Bitte prüfen Sie Ihre Eingabe."
- meineMeldung.runModal()
- }
- @IBAction func beenden(_ sender: Any) {
- NSApplication.shared.terminate(self)
- }
- @IBOutlet weak var bildAnzeige: NSImageView!
- @IBOutlet weak var bildName: NSTextField!
- @IBAction func meinDialog(_ sender: Any) {
- let meinDialog: NSOpenPanel = NSOpenPanel()
- meinDialog.prompt = "Bild 1 hinzufügen"
- meinDialog.allowedFileTypes = NSImage.imageTypes
- if meinDialog.runModal() == NSApplication.ModalResponse.OK {
- let meineDatei1 = meinDialog.url?.path
- bildName.stringValue = meineDatei1!
- meldungHinzugefuegt()
- bild1Anzeigen()
- meinDialog.prompt = "Bild 2 hinzufügen"
- meinDialog.allowedFileTypes = NSImage.imageTypes
- if meinDialog.runModal() == NSApplication.ModalResponse.OK {
- let meineDatei2 = meinDialog.url?.path
- bildName.stringValue = meineDatei2!
- meldungHinzugefuegt()
- bild2Anzeigen()
- }
- else {
- fehlerMeldung()
- }
- }
- }
- @objc func bild1Anzeigen() {
- if let meineDatei1 = NSImage(contentsOfFile: bildName.stringValue) {
- bildAnzeige.image = meineDatei1
- meinBild1 = meineDatei1
- }
- }
- @objc func bild2Anzeigen() {
- if let meineDatei2 = NSImage(contentsOfFile: bildName.stringValue) {
- bildAnzeige.image = meineDatei2
- meinBild2 = meineDatei2
- }
- }
- @IBAction func startTimer(_ sender: Any) {
- if bildAnzeige != nil {
- timerBild = Timer.scheduledTimer(timeInterval: 3.0, target: self, selector: #selector(bild1Anzeigen), userInfo: nil, repeats: true)
- timerBild = Timer.scheduledTimer(timeInterval: 3.0, target: self, selector: #selector(bild2Anzeigen), userInfo: nil, repeats: true)
- }
- }
- @IBAction func stopTimer(_ sender: Any) {
- if timerBild != nil {
- timerBild.invalidate()
- }
- else {
- return
- }
- }
- override func viewDidLoad() {
- super.viewDidLoad()
- // Do any additional setup after loading the view.
- }
- override var representedObject: Any? {
- didSet {
- // Update the view, if already loaded.
- }
- }
- }