2016-05-04 34 views
0

Ich versuche, die Hintergrundfarbe eines Fensters in einem NSViewController zu ändern, indem Sie ein Dropdown-Menü mit anderen Farboptionen verwenden. Dies ist die Methode, die die Änderungen vornehmen soll. Was mache ich falsch? Jede Hilfe wird geschätzt.Swift: Ändern Sie die Hintergrundfarbe im Fenster programmatisch

class ViewController: NSViewController, SimplerTextViewDelegate { 

    @IBAction func changeBackgroundColor(sender: BackgroundColorPopupButton) {   
     let backgroundColorName= (sender.selectedItem?.title)! 
     let backgroundColor = BackgroundColor.GetColor(backgroundColorName) 
     self.view.window!.backgroundColor = backgroundColor 
    } 
} 
+2

„Was mache ich falsch?“ Was ist dein Beweis dafür, dass du irgendetwas falsch machst? Wenn der Code kompiliert wird, wenn er ausgeführt wird, funktioniert er vermutlich, wenn er nicht abstürzt. Was ist das Problem genau? – matt

+1

Wahrscheinlich wird es geändert. Überprüfen Sie, dass Sie Blickhöhe sind. Vielleicht ist "self.view.window" nur hinter einer anderen Ansicht versteckt. Btw @matt Hallo, ich bin ein großer Fan von dir. – NSGangster

+0

@ NSGangster Danke, und ich denke du hast vielleicht den Nagel direkt auf den Kopf getroffen; Genau deshalb forsche ich weiter in meinem Kommentar. Das Fenster ist normalerweise nicht zu sehen, also was ist der Beweis, dass es die Farbe nicht ändert? Ich vermute, dass das OP wirklich 'self.view.backgroundColor' ändern will. – matt

Antwort

0

ich Code unten bin mit der Farbe für meinen Hintergrund Ansicht ändern

@IBAction func Color(_ sender: Any) { 

     let alert = UIAlertController(title: "Title", message: "Please Select Background Color", preferredStyle: .actionSheet) 

     alert.addAction(UIAlertAction(title: "White", style: .default , handler:{ (UIAlertAction)in 

     self.view.backgroundColor = UIColor.white 

     })) 

     alert.addAction(UIAlertAction(title: "Blue", style: .default , handler:{ (UIAlertAction)in 

     self.view.backgroundColor = UIColor.cyan 


     })) 

     alert.addAction(UIAlertAction(title: "Grey", style: .destructive , handler:{ (UIAlertAction)in 

     self.view.backgroundColor = UIColor.lightGray 

     })) 

     alert.addAction(UIAlertAction(title: "Dismiss", style: UIAlertActionStyle.cancel, handler:{ (UIAlertAction)in 
      print("User click Dismiss button") 
     })) 

     self.present(alert, animated: true, completion: { 
      print("completion block") 
     }) 

    } 
Verwandte Themen