我正在使用 SDL 创建一个用于 OpenGL 的窗口,它返回的唯一信息是 NSWindow 对象。
我可以使用它随后将 NSTouchBar 与该窗口相关联吗?
我通过直接修改 SDL 代码以在 ViewController 中完成它成功地完成了它,但是作为库 API 的用户,我无法使用该选项。
我以前认为我可以与客户 NSResponder 一起这样做,但我不再相信这是一个有效的选择。
谢谢你。
我正在使用 SDL 创建一个用于 OpenGL 的窗口,它返回的唯一信息是 NSWindow 对象。
我可以使用它随后将 NSTouchBar 与该窗口相关联吗?
我通过直接修改 SDL 代码以在 ViewController 中完成它成功地完成了它,但是作为库 API 的用户,我无法使用该选项。
我以前认为我可以与客户 NSResponder 一起这样做,但我不再相信这是一个有效的选择。
谢谢你。
创建一个 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,了解更多有关这些功能的内容。