【问题标题】:Making a Cocoa Button look like is pressed, programmatically以编程方式使 Cocoa Button 看起来像被按下
【发布时间】:2011-03-13 01:37:36
【问题描述】:

我有一些关键事件,也对应于按钮。我必须设置/调用什么属性/方法才能让按钮看起来很沮丧(改变状态?)说半秒钟?

【问题讨论】:

    标签: objective-c cocoa macos nsbutton


    【解决方案1】:

    我解决这个问题的方法是将 NSButton 设置为“Push On Push Off”类型,然后在我的关键事件处理程序中使用以下代码:

    NSButton *button = [self.superview viewWithTag:event.keyCode];
    if (button != nil && button.state == NSOffState) {
        [button performClick:event];
        [button performSelector:@selector(performClick:) withObject:event afterDelay:0.5];
    }
    

    这将突出显示按钮,就像用户单击它一样,然后它会在半秒后再次单击它。

    【讨论】:

      【解决方案2】:

      我相信按钮单元的-setHighlighted: 方法控制按钮是否看起来被按下。您可能还需要在更改按钮后调用-setNeedsDisplay:,并且该按钮可能会自行更改其单元格的突出显示状态,因此恐怕您可能需要摆弄才能使其正常工作。

      (不过,我必须承认,我并不完全确定这些。)

      【讨论】:

      • 是的,做到了:[(NSButtonCell *)yourButton.cell setHighlighted:YES];不需要 setNeedsDisplay。谢谢。
      猜你喜欢
      • 1970-01-01
      • 2010-09-05
      • 1970-01-01
      • 1970-01-01
      • 2021-11-28
      • 2012-07-06
      • 1970-01-01
      • 2016-04-30
      • 1970-01-01
      相关资源
      最近更新 更多