【问题标题】:Custom Window Style in CocoaCocoa 中的自定义窗口样式
【发布时间】:2012-10-31 14:02:02
【问题描述】:

好的,这就是我想要做的:

  • 我有一个自定义的NSPanel 子类
  • 我希望NSPanel 是无边界的(没有标题 - 我正在自己绘制标题栏)并且可以调整大小

事情是这样的:

  • styleMask 设置为NSResizableWindowMask 后,默认标题栏也会出现。
  • 一旦我将styleMask 设置为NSBorderlessWindowMask,默认标题栏就会消失(这很好),但窗口会失去调整大小的能力。

这是我的代码:

- (id)initWithContentRect:(NSRect)contentRect styleMask:(NSUInteger)windowStyle backing:(NSBackingStoreType)bufferingType defer:(BOOL)deferCreation
{
    if ((self = [super initWithContentRect:contentRect styleMask:NSTitledWindowMask backing:bufferingType defer:deferCreation])) {
        [self setOpaque:NO];
        [self setBackgroundColor:[NSColor clearColor]];
        [self setMovableByWindowBackground:YES];
        [self setLevel:NSFloatingWindowLevel];
        //[self setStyleMask:[self styleMask]&~NSTitledWindowMask];
    }
    return self;
}

正如您从注释掉的代码中看到的那样,我尝试使用任何可能的位操作与掩码组合,以便组合我需要的内容。

有什么想法吗??

【问题讨论】:

    标签: objective-c macos cocoa nspanel


    【解决方案1】:

    像这样一次完成它们

    styleMask:NSTitledWindowMask | NSResizableWindowMask 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多