Hallo Community,
ich soll ein kleines einfaches Programm schreiben, dass in einem regelmäßigem Abstand zwei unterschiedliche Bilder in einer NSImageView anzeigen soll. Ich soll dafür sorgen, dass der Inhalt der NSImageView nach Ablauf einer von mir bestimmten Zeit getauscht werden soll. Der Anwender soll die beiden Bilder selbst über entsprechende Dialoge auswählen können.
Ich habe das ganze über zwei Timer gelöst. Bin mir aber nicht sicher ob das so die beste Variante ist.
Ich bin auch noch nicht fertig mit dem Programm, es fehlen noch ein paar Sachen, es geht mir hier nur um den Wechsel der beiden Bilder in der NSImageView.
Hier ist mein Code:
Alles anzeigen
ich soll ein kleines einfaches Programm schreiben, dass in einem regelmäßigem Abstand zwei unterschiedliche Bilder in einer NSImageView anzeigen soll. Ich soll dafür sorgen, dass der Inhalt der NSImageView nach Ablauf einer von mir bestimmten Zeit getauscht werden soll. Der Anwender soll die beiden Bilder selbst über entsprechende Dialoge auswählen können.
Ich habe das ganze über zwei Timer gelöst. Bin mir aber nicht sicher ob das so die beste Variante ist.
Ich bin auch noch nicht fertig mit dem Programm, es fehlen noch ein paar Sachen, es geht mir hier nur um den Wechsel der beiden Bilder in der NSImageView.
Hier ist mein Code:
Quellcode
- import Cocoa
- class ViewController: NSViewController {
- @IBOutlet weak var bildAnzeige: NSImageView!
- @IBOutlet weak var bildName1: NSTextField!
- @IBOutlet weak var bildName2: NSTextField!
- var timerBild1: Timer!
- var timerBild2: Timer!
- func meinDialog(message: String, information: String) {
- let meinDialog: NSAlert = NSAlert()
- meinDialog.messageText = message
- meinDialog.informativeText = information
- meinDialog.runModal()
- }
- @objc func bildAnzeige1() {
- if let meinBild1 = NSImage(contentsOfFile: bildName1.stringValue) {
- bildAnzeige.image = meinBild1
- }
- }
- @objc func bildAnzeige2() {
- if let meinBild2 = NSImage(contentsOfFile: bildName2.stringValue) {
- bildAnzeige.image = meinBild2
- }
- }
- @IBAction func bildDatei1(_ sender: Any) {
- let meinBildDialog: NSOpenPanel = NSOpenPanel()
- meinBildDialog.prompt = "Öffnen"
- meinBildDialog.allowedFileTypes = NSImage.imageTypes
- if meinBildDialog.runModal() == NSApplication.ModalResponse.OK {
- let bildDatei1 = meinBildDialog.url?.path
- bildName1.stringValue = bildDatei1!
- }
- }
- @IBAction func bildDatei2(_ sender: Any) {
- let meinBildDialog: NSOpenPanel = NSOpenPanel()
- meinBildDialog.prompt = "Öffnen"
- meinBildDialog.allowedFileTypes = NSImage.imageTypes
- if meinBildDialog.runModal() == NSApplication.ModalResponse.OK {
- let bildDatei2 = meinBildDialog.url?.path
- bildName2.stringValue = bildDatei2!
- }
- }
- @IBAction func startAnimation(_ sender: Any) {
- bildAnzeige1()
- timerBild2 = Timer.scheduledTimer(timeInterval: 3, target: self, selector: #selector (bildAnzeige2), userInfo: nil, repeats: true)
- timerBild1 = Timer.scheduledTimer(timeInterval: 6, target: self, selector: #selector (bildAnzeige1), userInfo: nil, repeats: true)
- }
- @IBAction func beendenClicked(_ sender: Any) {
- NSApplication.shared.terminate(self)
- }
- override func viewDidLoad() {
- super.viewDidLoad()
- // Do any additional setup after loading the view.
- }
- override var representedObject: Any? {
- didSet {
- // Update the view, if already loaded.
- }
- }
- }
Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von Smoothcode ()