【问题标题】:change popover hight and unhide a new area更改弹出框高度并取消隐藏新区域
【发布时间】:2017-09-05 08:53:26
【问题描述】:

早上好,

我有这个小例子(macOS 的 swift 4):

故事板

结果

在我的弹出窗口中有三个按钮。 我在灰色按钮上有一个 IBAction。

现在我想实现以下情况,如果我按下灰色按钮:

  • 我想更改弹出框的高度
  • 应该隐藏灰色按钮下的文本字段。
  • 两个白色按钮应该向上移动

为了改变弹出框的高度,我成功地尝试了这个:

@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)

}

我知道,我可以像这样隐藏文本字段:mytextfield.isHidden = true,但是我怎样才能将两个白色按钮上移到之前显示文本字段的同一位置?

【问题讨论】:

    标签: swift macos cocoa position popover


    【解决方案1】:

    将按钮的位置设置在 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
    }
    

    【讨论】:

    • 感谢您的解决方案。同时我找到了另一种方法来做到这一点。在我的故事板中,我设置了白色和灰色按钮之间的垂直间距,通过 IBOutlet 连接此约束并将约束值设置为 10(而不是默认的 100)。非常感谢:)
    猜你喜欢
    • 1970-01-01
    • 2011-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多