【问题标题】:NSPopover sample code does not detach windowNSPopover 示例代码不分离窗口
【发布时间】:2014-11-04 07:03:00
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: window detach nspopover


    【解决方案1】:

    在输入问题时找到了答案……

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

    • (BOOL)popoverShouldDetach:(NSPopover *)popover

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

    添加:

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

    到 MyWindowController.m 解决了这个问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-16
      相关资源
      最近更新 更多