Sve*_*ven 10
您可以获取Windows内容视图的超级视图,并为其添加自定义视图.只需确保正确定位视图即可.以下是一些示例代码:
NSView *frameView = [[window contentView] superview];
NSRect frame = [frameView frame];
NSRect otherFrame = [otherView frame];
otherFrame.origin.x = NSMaxX( frame ) - NSWidth( otherFrame );
otherFrame.origin.y = NSMaxY( frame ) - NSHeight( otherFrame );
[otherView setFrame: otherFrame];
[frameView addSubview: otherView];
Run Code Online (Sandbox Code Playgroud)
这otherView是您要放在标题栏中的视图.如果有工具栏按钮,这段代码将无效 - 它们会重叠.幸运的是,有一个API来获取工具栏按钮,以便您可以计算位置:
NSButton *toolbarButton = [window standardWindowButton: NSWindowToolbarButton];
otherFrame.origin.x = NSMinX( [toolbarButton frame] ) - NSWidth( otherFrame );
Run Code Online (Sandbox Code Playgroud)
您还必须确保设置视图的自动调整遮罩,使其保留在窗口的右上角:
[otherView setAutoresizingMask:NSViewMinXMargin | NSViewMinYMargin];
Run Code Online (Sandbox Code Playgroud)