2016-04-03 10 views
-2

Ich habe einen Einstellungsansicht-Controller, der als Arbeitsblatt dargestellt wird. Es hat eine Schaltfläche, die die Einstellungen speichert, wenn sie gültig sind. Wenn die Einstellungen gültig sind, wird der View-Controller geschlossen. Wenn sie nicht gültig sind, erhält der Benutzer eine Warnung, dass die Einstellungen nicht gültig sind. Mein Code ist wie folgt:NSAlert beginSheetModalForWindow Keine Warnung anzeigen

var settingsValidated = false 

@IBAction func dismissSettings(sender: AnyObject) { 

    if settingsValidated == true { 

     dismissViewController(self) 

    } else { 

     let alert = NSAlert() 
     alert.messageText = "Warning" 
     alert.addButtonWithTitle("OK") 
     alert.informativeText = "Your settings did not validate!" 

     let window = NSApplication.sharedApplication().mainWindow 
     let res = alert.beginSheetModalForWindow(window!, completionHandler: nil) 

    } 
} 

Wenn settingsValidated auf true gesetzt ist alles wie erwartet funktioniert, aber wenn ich falsch nichts settingsValidated Set passiert. Die Warnung wird nie angezeigt. Was vermisse ich? Ich erhalte keine Fehler in Xcode.

Bitte beachten Sie diese Frage ist über OS X NICHT iOS.

Antwort

0

Es wird nicht angezeigt, weil Sie nichts mit dem Objekt res tun! - so entfernen sie:

 alert.beginSheetModalForWindow(window!, completionHandler: nil) 

NSAlert Class Reference

+0

Es funktioniert immer noch nicht. – user1822824

+0

@ user1822824: "Es funktioniert immer noch nicht" sagt mir nichts anderes als * Sie * machen eindeutig etwas falsch. Ich habe 'let res =' von der letzten Zeile entfernt und es funktioniert vollkommen in Ordnung für mich. –

+0

Ich erhalte keinen Fehler in Xcode, aber die Warnung wird nicht angezeigt, wenn auf die Schaltfläche geklickt wird. Ich konnte es schließlich durch eine Reihe von Änderungen an meinem NSAlert-Code erreichen. Ich werde meinen modifizierten Code als Antwort veröffentlichen. – user1822824