NSPopover示例代码不分离窗口

时间:2014-11-04 07:03:00

标签: window detach nspopover

我无法让我的NSPopover分离到我自己项目中的窗口,所以为了简化我尝试了Apple样本。

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

它的行为相同,也就是说我无法拖动窗口将其分离。

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

有谁知道可拆卸的NSPopovers的秘密?

1 个答案:

答案 0 :(得分:5)

在输入问题时找到答案......

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

  • (BOOL)popoverShouldDetach :( NSPopover *)popover

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

添加:

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

MyWindowController.m解决了这个问题。