con*_*are 4 macos cocoa notifications nsstatusitem nsnotificationcenter
在使用NSStatusItem自定义视图的应用中,如下所示:

...如何在以下情况下收到通知:
当项目更改位置时,两者都是将自定义视图移动到正确位置所必需的.
有一种方法-[NSStatusItem setView:].为状态项设置自定义视图时,此视图将自动插入特殊状态栏窗口.您可以使用方法访问该窗口-[NSView window]以观察它NSWindowDidMoveNotification:
- (void)applicationDidFinishLaunching:(NSNotification *)notification
{
NSStatusItem *statusItem = [self newStatusItem];
NSView *statusItemView = [self newStatusItemView];
statusItem.view = statusItemView;
NSNotificationCenter *dnc = [NSNotificationCenter defaultCenter];
[dnc addObserver:self selector:@selector(statusBarDidMove:)
name:NSWindowDidMoveNotification object:statusItemView.window];
}
- (void)statusBarDidMove:(NSNotification *)note
{
NSWindow *window = note.object;
NSLog(@"%@", NSStringFromRect(window.frame)); // i.e. {{1159, 900}, {24, 22}}
}
Run Code Online (Sandbox Code Playgroud)
每次状态栏变为可见或隐藏以及移动图标时,您都会收到通知.这是您更新弹出式面板位置的机会.
| 归档时间: |
|
| 查看次数: |
1260 次 |
| 最近记录: |