草庐IT

cocoa-design-patterns

全部标签

cocoa - 从 Nib 名称创建 NSWindow

我正在尝试从自己的nib文件创建NSWindow,但它似乎比我预期的要难...NSWindowController提供了一个init(windowNibName:String?)方法,它可以被子类覆盖。似乎不可能调用基类的init(windowNibName:String?)而不覆盖它(编译器显示一条错误消息,指出没有采用该String参数的初始化程序)。但是当覆盖此init(...)方法时,您必须遵循强制您调用指定初始化程序的初始化链。这个指定的初始化程序是init(window:NSWindow!)。这就是我目前遇到的问题...似乎我必须创建一个NSWindow对象(以某种方式)以

swift - Lint 具有 SSZipArchive 依赖项的 Swift cocoa pod

有人有幸创建了一个依赖SSZipArchive的pod吗?我的类(class)都在Swift中,但我也包括我的桥接文件(#import"SSZipArchive")。当我尝试lint时,我收到9个错误,所有错误都与SSZipArchive相关。请让我们知道您的想法。非常感谢!错误|SSZipArchive/SSZipArchive/minizip/ioapi.h:45:10:错误:在框架模块“SSZipArchive.ioapi”中包含非模块化header注意|TargetSupportFiles/Pods-SSZipArchive/Pods-SSZipArchive-umbrella

pattern-matching - 您如何在 TypeScript 中模拟 ADT 和模式匹配?

不幸的是,从0.9.5开始,TypeScript(还)没有代数数据类型(联合类型)和模式匹配(解构它们)。更重要的是,它甚至不支持接口(interface)上的instanceof。您使用哪种模式来模拟这些具有最大类型安全性和最少样板代码的语言功能? 最佳答案 我采用了以下类似访客的模式,灵感来自this和this(在示例中,Choice可以是Foo或Bar):interfaceChoice{match(cases:ChoiceCases):T;}interfaceChoiceCases{foo(foo:Foo):T;bar(bar

Induction of Design Pattern

网上查到的设计模式有23种,通过归纳去认识他们也是一种不错的视角。我这边不按照主流的观点去划分为创建型、结构型、行为型三大类,我只归纳为创建型(CreationalClass)、简单功能场景(SimpleMethodClass)、复杂功能场景(ComplexMethodClass)三大类。原因是结构、行为这种词本身就比较泛,而模式本身就是一种比较交叉融合的状态,所以根据我的理解,我主观性的重新划分,当然只是为了让我理解和思考。其实程序设计模式里,大多数的考虑初衷都是为了面向未来未知情况,在当前就先规划做好扩展方式,方便能让未来使用者使用方便的代码结构。也有能节省资源的设计模式、方便解耦的设计模

cocoa-touch - 实时渲染中的 IBDesignables 和 traitCollection

我正在构建我的自定义UIControl,一个构建为IBDesignable的自定义按钮,它需要根据显示它的尺寸类别进行更改。我有一个方法-setupForTraitCollection,它看起来像这样:funcsetupForTraitCollection(){switch(traitCollection.horizontalSizeClass,traitCollection.verticalSizeClass){case(.Regular,_)://iPad-notcompresseddesigncompressed=falsedefault://iPhone-compressedd

swift - Cocoa:工具栏文本字段内的进度条

我今天发帖是因为我想获得与位于工具栏内的Xcode7进度指示器类似的结果。蓝色条显示在看似NSTextField的下方,我认为这将是一个普通的UI元素,但我在对象库中找不到类似的东西。如何才能达到类似的结果,最好是使用原生的NSProgressIndicator?提前致谢。编辑:我通过使用这个老问题中的答案设法得到了类似的东西:NSTextFieldlikesafariaddressbar.但在我调整窗口大小以强制重新绘制文本字段之前,背景变为白色(而不是浅灰色渐变)。我应该在哪里放置self.needsDisplay以便在初始化后刷新文本字段?将它放在awakeFromNib的末尾是

objective-c - SceneKit Cocoa 添加贴花

是否有足够的方法向SCNNode添加贴花(纹理)?现在我所能做的就是用SCNPlane几何体创建新的SCNNode为其漫反射内容分配纹理并将其添加到场景中......这种方法非常低效。我想添加一个不会成为场景一部分的贴花-以提高游戏的性能。因为我想在地板节点上有比较多的贴花。也许有点类似于粒子内部的工作原理?或者其他一些快速图像绘制方法。我已经尝试过@rickster的建议1UseSKEffectNodeasabufferintheSpriteKitscene—throwsplattersintoaneffectnodeuntilitgetstoacertainnumberofchil

swift - 在 macOS Mojave 上,在 cocoa 应用程序中,如何使用 AVSpeechSynthesizer?

AVSpeechSynthesizerismarkedasavailableonmacOSMojavebeta.以前它仅适用于iOS、tvOS和watchOS。但是如果我在Xcode10中准备一个小的macOS测试项目,它会给我一个错误“使用未解析的标识符‘AVSpeechSynthesizer’”。在顶部,我有:importCocoaimportNaturalLanguageimportAVFoundation我的代码是:letstring="Mickeymousewenttotown"letrecognizer=NLLanguageRecognizer()recognizer.pr

swift - 使 Cocoa 应用程序可编写脚本 Swift

目标我正在尝试使我的Cocoa应用程序可以从Applescript编写脚本。我做了什么我已经创建了一个SDEF文件,配置了我的info.plist并创建了一个我认为合适的类。定义.sdef信息.plistScriptingSaveNotification.swiftimportFoundationimportCocoaclassScriptingSaveNotification:NSScriptCommand,NSUserNotificationCenterDelegate{overridefuncperformDefaultImplementation()->AnyObject?{l

ios - 命名空间冲突与 cocoa pod 模块 swift

我在我的一个名为Foo的Swift文件中有一个枚举。其中一个名为NameA的Cocoapods也具有名称为Foo的相同枚举(publicenum,不在任何类中)。该模块还有一个与其框架NameA同名的类。如果我尝试像这样在NameA模块中引用Foo:NameA.Foo它不起作用,因为编译器认为我指的是类NameA,而不是模块NameA。此处发布的解决方法对我也不起作用Swiftnamespaceconflict这似乎是swift中报告的错误:https://bugs.swift.org/browse/SR-898 最佳答案 不要导入