Objective c 如何从NSWindow对象创建NSTouchBar?
我正在尝试将touchbar支持与SDL应用程序集成 我已经研究了SDL中的objective c代码,并直接侵入了SDLView代码,获得了一个可用的触摸栏,但现在我想获得与股票SDL2库相同的功能。SDL公开了它创建的NSWindow对象,我想我可以创建一个响应器对象,实现了makeTouchBar和makeItemForIdentifier,但我不知道如何将它“附加”到窗口。我认为这将是一个“响应链”,但我真的不知道这到底意味着什么或如何做到这一点 我尝试过创建以下内容,并在窗口上尝试了setNextResponder的几种不同组合,但似乎无法找到调用makeTouchBar的正确组合,但我的想法是正确的,因为当我将这些方法直接放在视图上时,它会起作用Objective c 如何从NSWindow对象创建NSTouchBar?,objective-c,cocoa,sdl,nstouchbar,Objective C,Cocoa,Sdl,Nstouchbar,我正在尝试将touchbar支持与SDL应用程序集成 我已经研究了SDL中的objective c代码,并直接侵入了SDLView代码,获得了一个可用的触摸栏,但现在我想获得与股票SDL2库相同的功能。SDL公开了它创建的NSWindow对象,我想我可以创建一个响应器对象,实现了makeTouchBar和makeItemForIdentifier,但我不知道如何将它“附加”到窗口。我认为这将是一个“响应链”,但我真的不知道这到底意味着什么或如何做到这一点 我尝试过创建以下内容,并在窗口上尝试了s
@interface MyTouchbarResponder : NSResponder
- (id)init;
@property(strong, readonly) NSTouchBar *touchBar;
- (NSTouchBar *)makeTouchBar;
- (nullable NSTouchBarItem *)touchBar:(NSTouchBar *)touchBar makeItemForIdentifier:(NSTouchBarItemIdentifier)identifier;
@end
@implementation MyTouchbarResponder
- (id)init
{
[super init];
}
- (NSTouchBar *)makeTouchBar
{
...stuff...
}
- (nullable NSTouchBarItem *)touchBar:(NSTouchBar *)touchBar makeItemForIdentifier:(NSTouchBarItemIdentifier)identifier
{
...stuff...
}
@end
谢谢。 将自定义响应器添加到链中是一种方法,但有两种更简单的方法,您可能首先要考虑:
NSWindow
的子类中实现-makeTouchBar
。使用这种方法,您不需要设置或覆盖触摸栏
属性<代码>-makeTouchBar将被延迟调用✝ 根据需要填充该属性NSTouchBar
对象,并将其分配给窗口现有的touchBar
属性。(基本实现是一个存储属性,因此不需要重写它。)touchBarResponder.nextResponder = window.nextResponder;
window.nextResponder = touchBarResponder;
谢谢我无法控制窗口或视图类。我得到的只是NSWindow对象的句柄。