小编Ped*_*ira的帖子

如何访问系统选择的菜单项蓝色?

我的工作,有一个自定义的应用程序NSViewNSStatusBar,当用户点击它执行所有的绘图.但这就是问题,我正在绘制的颜色,因为视图的背景颜色与系统蓝色不同.

我的应用程序的颜色:
在此输入图像描述

Twitter的菜单项颜色(系统):
在此输入图像描述

你清楚地看到,我的蓝色比系统轻.这是我目前使用的代码(并且在比Yosemite更早的版本上完美运行):

[[NSColor selectedMenuItemColor] set];
NSRectFill(rect);
Run Code Online (Sandbox Code Playgroud)

我甚至尝试过挑选菜单项的颜色,但似乎颜色受到菜单栏下方壁纸的影响.
关于如何实现系统的任何想法看起来?

nsmenu nsmenuitem nscolor nsstatusbar osx-yosemite

29
推荐指数
1
解决办法
612
查看次数

如何使用NSVisualEffectView创建一个平滑,圆润,体积类似的OS X窗口?

我目前正在尝试创建一个类似于Volume OS X窗口的窗口:
在此输入图像描述


为了做到这一点,我有自己的NSWindow(使用自定义子类),透明/无标题栏/无阴影,NSVisualEffectView在其contentView内部.这是我的子类的代码,使内容视图轮流:

- (void)setContentView:(NSView *)aView {
   aView.wantsLayer            = YES;
   aView.layer.frame           = aView.frame;
   aView.layer.cornerRadius    = 14.0;
   aView.layer.masksToBounds   = YES;

   [super setContentView:aView];
}
Run Code Online (Sandbox Code Playgroud)


这就是结果(正如你所看到的,角落是颗粒状的,OS X更平滑):
在此输入图像描述
关于如何使角落更平滑的任何想法?谢谢

macos cocoa objective-c nswindow nsvisualeffectview

23
推荐指数
2
解决办法
5833
查看次数

选中时,自定义NSTableCellView标签不会更改文本颜色

我有一个NSTableCellView带有3个文本字段的自定义,1个出现,另外2个是我自己创建的.这是问题所在:
在此输入图像描述

即使单击该行,文本字段的文本颜色也保持不变.我试图实现我通过谷歌搜索发现的代码,但它不起作用.我的自定义NSTableCellView代码是:

- (void)drawRect:(NSRect)dirtyRect{
    NSColor *color = [NSColor colorWithCalibratedRed:(26/255.0) green:(26/255.0) blue:(26/255.0) alpha:1.0];
    [self.textField setTextColor:color];

    color = [NSColor colorWithCalibratedRed:(102/255.0) green:(102/255.0) blue:(102/255.0) alpha:1.0];
    [_lbl1 setTextColor:color];
    [_lbl2 setTextColor:color];
}

- (void)setBackgroundStyle:(NSBackgroundStyle)backgroundStyle {
    NSColor *color = (backgroundStyle == NSBackgroundStyleDark) ? [NSColor windowBackgroundColor] : [NSColor controlShadowColor];
    self.textField.textColor = color;
    self.lbl1.textColor = color;
    self.lbl2.textColor = color;
    [super setBackgroundStyle:backgroundStyle];
}
Run Code Online (Sandbox Code Playgroud)

当用户点击标签时,我该怎么做才能使标签的文字颜色变白?

macos cocoa objective-c nstableview nstableviewcell

14
推荐指数
3
解决办法
4191
查看次数

如何让NSAlert的第二个按钮成为返回按钮?

我想做这样的事情NSAlert:
在此输入图像描述

如您所见,"返回"按钮是第二个按钮.我怎样才能做到这一点?
这是我用来创建我的代码的示例NSAlert,但第一个按钮获得焦点:

NSAlert *alert = [[NSAlert alloc] init];
[alert setMessageText:@"Are you sure you want to disconnect?"];
[alert addButtonWithTitle:@"Disconnect"];
[alert addButtonWithTitle:@"Cancel"];
[alert runModal];
Run Code Online (Sandbox Code Playgroud)

我想关注"取消"按钮.有任何想法吗?谢谢!

macos cocoa objective-c nsalert

14
推荐指数
1
解决办法
4531
查看次数

如何在耳机插入/拔出时收到通知?苹果电脑

当耳机插入或拔出耳机插孔时,我想收到通知.
我已经在stackoverflow上搜索了这个,但我似乎无法找到我正在寻找的Mac,我只能找到iOS.
那么,您对如何执行此操作有任何想法吗?我想要做的是:当耳机插入时,我想以编程方式暂停iTunes(类似iOS的功能).
谢谢!

macos cocoa objective-c core-audio headphones

11
推荐指数
1
解决办法
4972
查看次数

如何更改NSPopover的箭头位置?

我的应用程序上有一个NSPopover,但我想改变箭头的位置.
是)我有的:
在此输入图像描述


我想要的是:
在此输入图像描述


正如您在第二张图片中看到的那样,NSPopover的箭头位于顶部.我怎样才能做到这一点?
我的代码:

[_popover showRelativeToRect:[sender bounds] ofView:sender preferredEdge:NSMaxXEdge];
Run Code Online (Sandbox Code Playgroud)

谢谢!

macos xcode cocoa objective-c popover

10
推荐指数
1
解决办法
3089
查看次数

如何知道该应用运行的Mac OS是什么?

我在一些项目中看到过类似的东西:

#if .....
    code...
#endif
Run Code Online (Sandbox Code Playgroud)

但我现在找不到它......
比方说,如果应用程序在10.8运行,应用程序会执行1项操作,如果不是应用程序执行其他操作.什么代码来检查它是否在10.8上运行?
谢谢.

macos xcode cocoa objective-c osx-mountain-lion

8
推荐指数
2
解决办法
6717
查看次数

NSWindow在失去焦点时未收到任何通知

我有一个自定义的NSWindow类,它有以下方法:

- (void)setupWindowForEvents{
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(windowDidResignKey:) name:NSWindowDidResignMainNotification object:self];
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(windowDidResignKey:) name:NSWindowDidResignKeyNotification object:self];
}

-(void)windowDidResignKey:(NSNotification *)note {
    NSLog(@"notification");
    [self close];
}
Run Code Online (Sandbox Code Playgroud)

我打电话[_window setupWindowForEvents];windowDidResignKey永远不会被叫.
这就是我调用NSWindow的方式:当单击状态栏项目时,我makeKeyAndOrderFront和窗口显示在状态栏项目的正下方,如下所示:在此输入图像描述

当窗口失去焦点时,我没有得到任何通知的任何想法?我已经使用了两者NSWindowDidResignMainNotification,NSWindowDidResignKeyNotification看看这些是否有效,但没有一个有效.

macos cocoa objective-c nsnotifications nswindow

8
推荐指数
1
解决办法
3627
查看次数

如何在NSColor和UIColor之间自动选择正确的构建系统?(使用#define,或其他东西)

我正在尝试创建一个NSObject子类,它将有很多返回颜色的方法,所以UIColor如果我正在构建iOS或者NSColor我正在为OS X构建,我想返回.
这是一种什么样的伪代码预期的行为应该是:

#define COLOR #if TARGET_OS_IPHONE UIColor #elif TARGET_OS_MAC NSColor #endif

+ (COLOR *)makeMeColorful;
Run Code Online (Sandbox Code Playgroud)

有可能做这样的事情,而不是为我的每个对象的方法(一个用于iOS,另一个用于OS X)制作两个方法吗?

cocoa objective-c uicolor nscolor c-preprocessor

8
推荐指数
2
解决办法
1370
查看次数

如何在点击我的应用程序的链接(Associated Domains)后检查用户来自哪个应用程序?

所以基本上我正在开发一个应用程序(iOS 9)并设置Associated Domains允许在用户点击我的应用程序的链接时直接打开应用程序.

点击链接并打开我的应用后,状态栏上会出现一个新的后退按钮,允许用户返回上一个应用,如下所示:
在此输入图像描述

我正在使用以下方法捕获此操作(通过链接启动):

- (BOOL)application:(nonnull UIApplication *)application continueUserActivity:(nonnull NSUserActivity *)userActivity restorationHandler:(nonnull void (^)(NSArray * __nullable))restorationHandler
{
    if ([userActivity.activityType isEqualToString:NSUserActivityTypeBrowsingWeb]) {
        NSURL *webURL = userActivity.webpageURL;
        NSLog(@"%@", webURL.absoluteString);
    }
    return YES;
}
Run Code Online (Sandbox Code Playgroud)

有没有办法访问此信息(以前的应用程序,在这种情况下的消息)NSUserActivity或类似的东西?

back-button deep-linking ios ios9

8
推荐指数
1
解决办法
1595
查看次数