我有一个初始化为的变量:
lazy var aClient:Clinet = {
var _aClient = Clinet(ClinetSession.shared())
_aClient.delegate = self
return _aClient
}()
Run Code Online (Sandbox Code Playgroud)
问题是,在某些时候,我需要重置此aClient变量,以便它可以在ClinetSession.shared()更改时再次初始化.但是如果我将类设置为可选Clinet?,当我尝试将其设置为时,LLVM会给我一个错误nil.如果我只是在代码中的某处使用aClient = Clinet(ClinetSession.shared())它重置它,它将最终得到EXEC_BAD_ACCESS.
有没有办法可以使用lazy并被允许重置自己?
谢谢!
我正在寻找NSWindowXIB编辑器中的设置选项或通过编程方式获取我可以在用户单击缩放按钮(绿色交通灯)时禁用OS X中的全屏模式功能,因为它与我的UI设计不兼容.(而是将其用于正常的窗口缩放.)
任何人都可以给我一些提示在哪里寻找?
我刚刚注意到iTunes的通知图标被专辑封面取代:

它的应用程序图标在标题附近是一个小图标,与我所知道的有点不同:

我只能添加图像作为内容的一部分,而不是应用程序图标.
是否有NSUserNotification我未知的无证API?
macos cocoa itunes nsusernotification nsusernotificationcenter
我试图访问Swift中的临时目录.在Objective-C中,我可以使用以下代码来执行此操作:
- (NSString *)tempDirectory {
NSString *tempDirectoryTemplate =
[NSTemporaryDirectory() stringByAppendingPathComponent:@"XXXXX"];
const char *tempDirectoryTemplateCString = [tempDirectoryTemplate fileSystemRepresentation];
char *tempDirectoryNameCString = (char *)malloc(strlen(tempDirectoryTemplateCString) + 1);
strcpy(tempDirectoryNameCString, tempDirectoryTemplateCString);
char *result = mkdtemp(tempDirectoryNameCString);
if (!result) {
return nil;
}
NSString *tempDirectoryPath = [[NSFileManager defaultManager] stringWithFileSystemRepresentation:tempDirectoryNameCString length:strlen(result)];
free(tempDirectoryNameCString);
return tempDirectoryPath;
}
Run Code Online (Sandbox Code Playgroud)
但是,我对从Objective-C到Swift的类型转换和转换有点困惑,例如 const char *或CMutablePointer<CChar>.有没有我应该研究的文件?
谢谢.
我有一个NSVisualEffectView一个内NSPopover用于开发10.10.
当子类化NSVisualEffectView以具有悬停背景颜色效果时,无边框按钮颜色似乎不同

我尝试设置backgroundColor纽扣电池以clearColor或为我所用的相同drawRect:的的NSVisualEffectView,前者给出错误的颜色(未填充蓝色)和后来还是用错了颜色相同.(边框周围的灰色框).
CALayer 可以解决这个问题,但有没有办法不使用它?
有任何想法吗?
我有一个NSScrollView,它被设置为:
MyNSScrollView.hasHorizontalScroller = YES;
MyNSScrollView.hasVerticalScroller = YES;
MyNSScrollView.autohidesScrollers = YES;
MyNSScrollView.scrollerStyle = NSScrollerStyleOverlay;
Run Code Online (Sandbox Code Playgroud)
我注意到,如果没有触控板连接到 OS X,并且默认情况下,NSScrollView它将忽略我在代码中的设置并强制滚动条始终显示:
我只能将我的系统设置更改为“滚动时”或设置hasHorizontalScroller等NO以隐藏它,后者将禁用鼠标滚动,这不是我想要的结果。
默认情况下(自动基于鼠标或触控板)如果用户没有触控板,即使内容大小不超过框架大小,也将始终显示滚动条。但是如果你有一个触控板,它将是覆盖样式,无论滚动条是否显示,它都在内容之上。
两者之间的区别在于“传统”样式将占用滚动视图中的空间。如果您要传递visiableRect计算值,或者您的内容需要通过约束保持一定的纵横比,这将是一个问题。
有没有办法强制隐藏它们而不禁用它们?
macos ×4
objective-c ×4
swift ×4
cocoa ×3
fullscreen ×1
itunes ×1
nsbutton ×1
nsscroller ×1
nsscrollview ×1
nsview ×1
nswindow ×1