NSPopover示例代码未分离窗口



在我自己的项目中,我无法让我的NSPopover分离到一个窗口,所以为了简化,我尝试了Apple示例。

我下载了苹果示例项目的新副本:http://developer.apple.com/library/mac/samplecode/Popover/Introduction/Intro.html

它的行为是一样的,也就是说我也不能拖动窗口来分离它。

该项目似乎提供了所有正确的窗口和控制器,并实现了detachableWindowForPopover:委托方法。但是,该方法从未被调用。

有人知道可拆卸NSPopovers的秘密吗?

在键入问题时找到答案…

Mac OS X 10.10 Yosemite有一个新的委托方法:

  • (BOOL)popover ShouldDetach:(NSPopover*)popover

Yosemite上的默认行为为"否"(不应分离)。因此,代理必须实现此方法才能使窗口可拆卸。这个示例项目没有实现这个方法,所以当在Yosemite上编译时,它不会分离(并且还会产生几个弃用警告——也许我应该接受它需要更新的提示)。

添加:

- (BOOL)popoverShouldDetach:(NSPopover *)popover {
    return YES;
}

To MyWindowController.m修复了此问题。

最新更新