【问题标题】:Set OSX application frame between dock and menu在 Dock 和菜单之间设置 OSX 应用程序框架
【发布时间】:2017-06-27 09:03:06
【问题描述】:

我是 Objective-c 的新手,我不知道如何设置菜单栏和 Dock 之间的框架高度。我查了很多关于它的问题,这是我的代码:

我创建了一个名为 MainWindowControllerNSWindowController 文件。

MainWindowController.m

#import "MainWindowController.h"

@interface MainWindowController ()

@end

@implementation MainWindowController

- (void)windowDidLoad {
    [super windowDidLoad];

    int screenWidth = [NSScreen mainScreen].frame.size.width;
    int screenHeight = [NSScreen mainScreen].frame.size.height;

    [self.window setFrame:NSMakeRect(0, 0, screenWidth, screenHeight) display:YES];
    [self.window setContentSize:NSMakeSize(screenWidth, screenHeight)];
    [self.window setContentMaxSize:NSMakeSize(screenWidth, screenHeight - self.window.dockTile.size.height)];
    [self.window setContentMinSize:NSMakeSize(screenWidth, screenHeight - self.window.dockTile.size.height)];
    [self.window setMaxFullScreenContentSize:NSMakeSize(screenWidth, screenHeight - self.window.dockTile.size.height)];
    [self.window setMinFullScreenContentSize:NSMakeSize(screenWidth, screenHeight - self.window.dockTile.size.height)];
    [self.window toggleFullScreen:self];

    // Set Title Bar

    self.window.titlebarAppearsTransparent = YES;
    self.window.styleMask |= NSWindowStyleMaskFullSizeContentView;
}

@end

但结果是这样的: enter image description here

如何将框架设置在停靠栏之外?

【问题讨论】:

    标签: objective-c macos size frame nswindow


    【解决方案1】:

    对于屏幕大小,在通过例如接收到的实例上使用 -[NSScreen frame] +[NSScreen mainScreen]-[NSWindow screen].
    要获得没有停靠栏和菜单栏的可见部分,请使用-[NSScreen visibleFrame]

    请记住,整个桌面可以跨越多个屏幕。

    【讨论】:

      猜你喜欢
      • 2010-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多