【问题标题】:How would you make a Status Item show or Hide a window when clicked?单击时如何使状态项显示或隐藏窗口?
【发布时间】:2009-06-03 02:48:33
【问题描述】:

当在菜单栏中单击实际按钮而不是在下拉菜单中显示或隐藏窗口时,如何制作状态项? 抱歉,如果这有点模糊。

【问题讨论】:

    标签: objective-c cocoa menuitem


    【解决方案1】:

    NSStatusItem 像许多其他控件一样支持目标/动作机制。我自己没有用过这个——我只用过带有菜单的NSStatusItem——所以我不知道何时发送消息(即当鼠标按钮是单击或释放时)。如果默认情况下它不符合您的要求,您将需要一个像 Daniel 建议的自定义视图。

    【讨论】:

    • 我如何让它有一个动作?
    • 你会如何设置它的动作?因为在 IB 中看不到,所以不能用正常的方式做。
    • Peter 已经告诉过你如何:在 NSStatusItem 上调用 setTarget: 和 setAction: 来为其提供要调用的对象和选择器。
    【解决方案2】:

    要使用 NSStatusItem 实现这一点,您需要创建一个自定义视图并通过调用其“setView:”方法替换默认的 NSStatusItem 视图。

    您将在自定义视图中实现代码以响应鼠标点击,例如放一扇窗户。 (如果最适合您,您可以使用按钮或其他标准视图)。

    我会警告你,这有点棘手。很多细微差别,例如让您的自定义视图在菜单栏中看起来正确。但是,如果您想覆盖默认的菜单提示状态项视图,这是您需要采取的一般方法。

    【讨论】:

    • 你确定这是最简单的方法吗?
    • 我猜“确定”是一个强有力的词,但如果我不认为这是唯一的方法,我就不会这样回答。也许其他人会提供另一种意见。
    • 嗯,我看看有没有人回答。
    • 我需要什么代码来执行此操作,或者是否有相关教程?
    猜你喜欢
    • 2019-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多