当NSAlert显示为模态窗口时,如何禁用所有拖放操作

时间:2016-04-25 14:21:45

标签: objective-c cocoa drag-and-drop nsalert

我有自定义NSView的NSWindow。此自定义NSView覆盖performDragOperation方法。拖放操作很有效。但是当我创建并显示NSAlert作为模态窗口时,我需要块拖放,方法,不应该调用performDragOperation。

NSAlert *alert = [[NSAlert alloc]init];
[alert addButtonWithTitle:@"Excellent"];
[alert setMessageText:@"This is your message."];
[alert runModal];

可能的解决方案之一是添加验证对话框是否显示为performDragOperation方法的代码。但是如何检测是否显示了NSAlert。 例如,我可以使用表格:

if([window attachedSheet]) {
   ...
}

但是如何做到这一点

[alert runModal];

1 个答案:

答案 0 :(得分:0)

根据Willeke的评论,要检测是否正在运行一些警报,可以使用下一个代码:

if([NSApp modalWindow]) { 
  ...
}
相关问题