Hide MAAttachedWindow when clicking outside(单击外部时隐藏 MAAttachedWindow)
问题描述
我正在使用 MAAttachedWindow 在下显示自定义窗口菜单栏中的 NSStatusItem.一切正常,但是当用户在窗口外单击时,我找不到一种简单的方法来隐藏它.我想实现这种行为,因为它是用户所期望的.
I'm using an MAAttachedWindow to display a custom window under a NSStatusItem in the Menubar. Everything works fine, but I can't find an easy way to hide it when the user clicks outside of the window. I want to implement this behavior because it's what the user expects.
这是用于显示MAAttachedWindow
的代码:
- (void)toggleAttachedWindowAtPoint:(NSPoint)pt {
if (!self.attachedWindow) {
self.attachedWindow = [[MAAttachedWindow alloc] initWithView:logView
attachedToPoint:pt
inWindow:nil
onSide:MAPositionBottom
atDistance:5.0];
[self.attachedWindow setLevel:kCGMaximumWindowLevel];
}
if(isVisible)
[self.attachedWindow makeKeyAndOrderFront:self];
else
[self.attachedWindow orderOut];
}
此代码由带有自定义视图的 NSStatusItem
触发,该视图拦截对其的点击.
This code gets triggered by an NSStatusItem
with a custom view which intercepts a click on it.
推荐答案
你应该可以通过窗口的委托方法做到这一点:
You should be able to do this via the window's delegate method:
- (void)windowDidResignKey:(NSNotification *)notification
将自己设置为窗口的委托,并实现它以调用您的切换方法.
Set yourself as the window's delegate, and implement that to call through to your toggle method.
这篇关于单击外部时隐藏 MAAttachedWindow的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:单击外部时隐藏 MAAttachedWindow
![](/xwassets/images/pre.png)
![](/xwassets/images/next.png)
- 使用自定义动画时在 iOS9 上忽略 edgesForExtendedLayout 2022-01-01
- 如何检查发送到 Android 应用程序的 Firebase 消息的传递状态? 2022-01-01
- Android - 我如何找出用户有多少未读电子邮件? 2022-01-01
- 想使用ViewPager,无法识别android.support.*? 2022-01-01
- Android - 拆分 Drawable 2022-01-01
- android 4中的android RadioButton问题 2022-01-01
- MalformedJsonException:在第1行第1列路径中使用JsonReader.setLenient(True)接受格式错误的JSON 2022-01-01
- 在测试浓缩咖啡时,Android设备不会在屏幕上启动活动 2022-01-01
- Android viewpager检测滑动超出范围 2022-01-01
- 用 Swift 实现 UITextFieldDelegate 2022-01-01