0

我正在使用 SDL 创建一个用于 OpenGL 的窗口,它返回的唯一信息是 NSWindow 对象。

我可以使用它随后将 NSTouchBar 与该窗口相关联吗?

我通过直接修改 SDL 代码以在 ViewController 中完成它成功地完成了它,但是作为库 API 的用户,我无法使用该选项。

我以前认为我可以与客户 NSResponder 一起这样做,但我不再相信这是一个有效的选择。

谢谢你。

4

1 回答 1

1

创建一个 NSWindowController 并将其附加到现有的窗口工作。

@interface WindowController : NSWindowController <NSTouchBarDelegate>

- (id)init:(NSWindow *) nswindow
{
    self = [super initWithWindow:nswindow];
    return self;
}

- (NSTouchBar *)makeTouchBar
{
        NSTouchBar *bar = [[NSTouchBar alloc] init];
        bar.delegate = self;
        bar.customizationIdentifier = PopoverCustomizationIdentifier;
        bar.defaultItemIdentifiers = @[PopoverItemIdentifier, NSTouchBarItemIdentifierOtherItemsProxy];
        bar.customizationAllowedItemIdentifiers = @[PopoverItemIdentifier];
        bar.principalItemIdentifier = PopoverItemIdentifier;
        return bar;
}

您可以查看https://developer.apple.com/library/content/samplecode/NSTouchBarCatalog/Listings/Objective_C_NSTouchBar_Catalog_TestViewControllers_PopoverViewController_m.html,了解更多有关这些功能的内容。

于 2016-11-20T10:18:39.323 回答