停靠栏显示或隐藏时的事件

Posted

技术标签:

【中文标题】停靠栏显示或隐藏时的事件【英文标题】:Events when dock is showing or hiding 【发布时间】:2011-05-26 07:43:32 【问题描述】:

如何在 Dock 显示或隐藏时获取事件?

【问题讨论】:

【参考方案1】:

如果扩展坞可见或未使用 Carbon,您会收到通知。我不知道在 Cocoa 中有什么方法可以做到这一点。

(这个我没测试过,来自代码here)

创建你的回调方法:

#import <Carbon/Carbon.h>

static const EventTypeSpec appEvents[] = 
     kEventClassApplication, kEventAppSystemUIModeChanged 
;

OSStatus DockChangedHandler(EventHandlerCallRef inCallRef, EventRef event, void *userData) 
    OSStatus status = eventNotHandledErr;
    switch(GetEventClass(event)) 
        case kEventClassApplication: 
            SystemUIMode *outMode;
            SystemUIOptions *outOptions;
            GetSystemUIMode(outMode, outOptions);
            status = noErr;
        
            break;

        default: 
            return;

    

    /*Insert whatever you want to do when you're notified of a dock change*/

    return status;

然后把它放在你想开始监听通知的任何地方:

    InstallApplicationEventHandler(NewEventHandlerUPP(DockChangedHandler), GetEventTypeCount(appEvents), appEvents, 0, NULL);

更多信息:http://developer.apple.com/library/mac/#technotes/tn2002/tn2062.html

【讨论】:

以上是关于停靠栏显示或隐藏时的事件的主要内容,如果未能解决你的问题,请参考以下文章

js监听网页页面滑动滚动事件,实现导航栏自动显示或隐藏

Xcode - 显示“场景停靠” - 它被隐藏

QT:标题栏隐藏图标和隐藏后移动窗口

如何通过单击事件以编程方式显示/隐藏操作栏项目

从停靠栏隐藏应用程序图标,但在任务切换器中保留图标?

在 WebView 中全屏视频后隐藏菜单栏和停靠