Я не уверен, есть ли лучший подход, но вот один из способов сделать это:
Создать BOOL
ивар, который отслеживает, перемещается окно или нет.Затем зарегистрируйтесь для уведомлений NSWindowWillMoveNotification
и NSWindowDidMoveNotication
:
NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];
[nc addObserver:self selector:@selector(windowWillMove:) name:NSWindowWillMoveNotification object:nil];
[nc addObserver:self selector:@selector(windowDidMove:) name:NSWindowDidMoveNotification object:nil];
Затем обработайте уведомления и установите ивар соответствующим образом:
- (void)windowWillMove:(NSNotification*)notification
{
windowBeingDragged = YES;
}
- (void)windowDidMove:(NSNotification*)notification
{
windowBeingDragged = NO;
}
Теперь вы можете просто проверить значениеivar (* в этом случае windowBeingDragged
, чтобы проверить, перетаскивается ли окно).