2016-11-20 2 views
0

Я использую SDL для создания окна для использования с OpenGL, и единственной информацией, которую он возвращает, является объект NSWindow.Могу ли я подключить NSTouchBar к NSWindow после того, как он был создан без какой-либо конкретной поддержки NSTouchBar?

Могу ли я использовать это, чтобы впоследствии связать NSTouchBar с этим окном?

Я успешно сделал это, изменив код SDL, чтобы сделать это в ViewController, но, как пользователь API-интерфейса библиотеки, эта опция недоступна для меня.

Ранее я думал, что смогу сделать это с помощью клиентского NSResponder, но я больше не убежден, что это допустимый вариант.

спасибо.

ответ

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 для связки несколько из кишок, чтобы положить в этих функциях.

+0

Моя проблема кажется очень похожей на это, но просто создание моего WindowController с [NSApp mainWindow], поскольку аргумент не дает мне никаких тачпарков. См. Https://stackoverflow.com/questions/41383194/adding-nstouchbar-support-after-main-window-has-been-created – dsvensson

Смежные вопросы