相关疑难解决方法(0)

双击标题栏时如何知道窗口是否可以最小化?

此图像来自SystemPreferences> Appearance 在此输入图像描述

我想知道如何以编程方式获得该值?

我问,因为我正在绘制一个带有自定义标题栏的窗口,我希望它尽可能地与正常(非自定义)可可窗口相似(在行为上).

也许我可以管道的终端命令或是否有一个cocoa API来执行此操作?

编辑:

回答(感谢NSGod)

- (void)mouseUp:(NSEvent *)event{

    if ([event clickCount] == 2) {
        //Get settings from "System Preferences" >  "Appearance" > "Double-click on windows title bar to minimize"
        NSString *const MDAppleMiniaturizeOnDoubleClickKey = @"AppleMiniaturizeOnDoubleClick";
        NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
        // [userDefaults addSuiteNamed:NSGlobalDomain]; // unnecessary
        BOOL shouldMiniaturize = [[userDefaults objectForKey:MDAppleMiniaturizeOnDoubleClickKey] boolValue];
        if (shouldMiniaturize) {
            [self miniaturize:self];
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

后来我发现可以找到Appearance(Aqua/Graphite):

NSString * const kAppleAquaColorVariant = @"AppleAquaColorVariant";
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
// [userDefaults addSuiteNamed:NSGlobalDomain]; // unnecessary  
NSNumber *color …
Run Code Online (Sandbox Code Playgroud)

cocoa window objective-c nsuserdefaults

7
推荐指数
1
解决办法
1438
查看次数

有没有办法使自定义NSWindow与Spaces一起工作

我正在编写一个应用程序,它具有使用NSWindow子类创建的自定义透明NSWindow,其中包含以下内容:

- (id)initWithContentRect:(NSRect)contentRect styleMask:(NSUInteger)aStyle backing:(NSBackingStoreType)bufferingType defer:(BOOL)flag 
{
   self = [super initWithContentRect:contentRect styleMask:NSBorderlessWindowMask backing:bufferingType defer:flag];

   if (self)
   {
     [self setOpaque:NO];
     [self setBackgroundColor:[NSColor clearColor]];
   }

   return self;
}

- (BOOL)canBecomeKeyWindow
{
  return YES;
}

- (BOOL)canBecomeMainWindow
{
  return YES;
}
Run Code Online (Sandbox Code Playgroud)

我有一切都很完美,包括拖动和调整大小,除了窗口不适用于Spaces.我不能通过按住窗口同时通过键盘快捷键切换空格,或者拖动到窗口的底部/顶部/左/右来将窗口移动到另一个空间.反正有一个自定义窗口的行为与空间的普通窗口完全一样吗?

cocoa objective-c

5
推荐指数
2
解决办法
2817
查看次数

以编程方式将工作区添加/删除到mac

我有一个相当简单的问题.我将如何以编程方式添加/删除任务控制中找到的工作空间.我在这里看过这篇关于以编程方式更改到另一个空间的帖子,我认为它可能类似于答案,使用CGSPrivate.h.我不需要担心私有框架,因为它不会在应用商店中出现.

编辑:我也看到一篇关于修改com.apple.spaces.plist和添加工作区的帖子,但我不知道如何添加它,因为dict有UUID和其他东西.

macos workspace cocoa mission-control

5
推荐指数
1
解决办法
717
查看次数