如何在移动 NSView 时接收通知

Posted

技术标签:

【中文标题】如何在移动 NSView 时接收通知【英文标题】:How to receive notification when an NSView is moved 【发布时间】:2016-10-03 15:28:33 【问题描述】:

如何在 NSView 移动时接收通知/回调 - 或者在 NSViewController 移动时。

我看到有 NSWindow (NSWindowDidMoveNotification) 的方法,但我不知道如何使用 NSView 或 NSViewController 处理它。

我知道 NSView 有一个 NSWindow 并且这就是具有“坐标”的东西,但我不确定如何子类化这个 NSWindow 来覆盖 move 方法。

【问题讨论】:

【参考方案1】:

我发现了。像这样添加一个观察者:

[[NSNotificationCenter defaultCenter] addObserver:self
                                            selector:@selector(frameDidChange:)
                                                name:NSViewFrameDidChangeNotification
                                              object:self.view];

还有这样的选择器:

- (void)frameDidChange:(NSNotification*)notification 

   NSView* view = [notification object];

   ...

【讨论】:

以上是关于如何在移动 NSView 时接收通知的主要内容,如果未能解决你的问题,请参考以下文章

禁止仅在后台接收通知

发送消息时如何接收通知

在 iOS13 中接收推送通知时如何自动增加通知徽章编号

如何在没有用户交互的情况下在后台接收 iOS 通知

在 iPhone 中接收推送通知时如何播放声音

如何在快速接收推送通知时进行服务器调用?