2017-09-05 3 views
0

Bonjour,changement popover et réafficher une nouvelle zone

J'ai cet exemple litte (rapide 4 pour Mac OS):

Storyboard

enter image description here

Résultat

enter image description here

Dans mon popover sont trois boutons. J'ai une IBAction sur le bouton gris.

Maintenant, je voudrais réaliser la situation suivante, si j'appuie sur le bouton gris:

enter image description here

  • Je voudrais changer la hauteur de mon popover
  • les champs de texte sous le gris le bouton devrait être cacher.
  • les deux boutons blancs doivent se déplacer jusqu'à

Pour modifier la hauteur de mon popover J'ai essayé avec succès:

@IBAction func buttonPressed(_ sender: NSButton) { 

    self.view.window?.animator().setFrame(
    NSRect(origin: CGPoint(x: self.view.window!.frame.origin.x, y: self.view.window!.frame.origin.y), size: CGSize(width: self.view.window!.frame.width, height: self.view.window!.frame.height - 100)), display: true, animate: true) 

} 

Je sais que je peux cacher les champs de texte comme celui-ci: mytextfield.isHidden = true mais comment puis-je déplacer les deux boutons blancs sur la même position, où les champs de texte ont été affichés avant?

Répondre

0

Définissez la position des boutons à l'emplacement de textField.

@IBAction func buttonPressed(_ sender: NSButton) { 
    textField.isHidden = true 
    textField2.isHidden = true 
    buttonA.frame.origin.y = (textField.frame.origin.y + textField2.frame.origin.y)/2 
    buttonB.frame.origin.y = (textField.frame.origin.y + textField2.frame.origin.y)/2 
} 
+0

merci pour votre solution. Pendant ce temps, j'ai trouvé un autre moyen de le faire. Dans mon storyboard, je définis l'espacement vertical entre le bouton blanc et gris, connecte cette contrainte via IBOutlet et place la valeur de la contrainte à 10 (au lieu de la valeur par défaut 100). Merci beaucoup :) – Ghost108