草庐IT

cocoa-design-patterns

全部标签

swift - 如何允许用户将文件拖出 Cocoa App

我正在开发一个涉及在临时目录中创建文件夹的macOS应用程序。我如何允许用户将文件夹图标从Cocoa应用程序拖到他们的桌面上(或拖到Finder和其他应用程序中),以便拖放它实际上会粘贴应用程序创建的文件夹?到目前为止,我已经能够将要保存到临时目录的完成文件夹写入。如何在可以拖到Finder中的应用程序上放置一个文件夹图标?谢谢!我目前使用的完整代码是这样的:classdraggableFolder:NSImageView{overridefuncmouseDown(withtheEvent:NSEvent){letpasteboardItem=NSPasteboardItem()//

ios - 即使通过 cocoa pod 安装框架后也没有这样的模块

我正在尝试集成一个框架/库来在iOS中创建吸引人的表单,使用这个:https://github.com/ortuman/SwiftForms我能够安装Cocoapods。我还在我的Podfile中添加了以下内容(在我的项目目录中):source'https://github.com/CocoaPods/Specs.git'platform:ios,'8.0'use_frameworks!pod'SwiftForms'然后运行命令:$podinstall但在我的类里面,我仍然得到“没有这样的模块‘SwiftForms’”。红色在这里表示什么:当我打开xworkspace时,出现以下错误:

cocoa - 如何使用显式 NSLayoutManager、NSTextStorage、NSTextContainer 以编程方式设置 NSTextView?

按照苹果文档,我试图通过它的两个构造函数方法设置一个简单的NSTextView。我将下面的代码放在内容View的ViewController的viewDidAppear方法中。textView是NSTextView的实例,frameRect是内容View的框架。以下Swift代码有效(给我一个可编辑的textView,文本显示在屏幕上):textView=NSTextView(frame:frameRect!)self.view.addSubview(textView)textView.textStorage?.appendAttributedString(NSAttributedSt

cocoa - Swift 示例和 RESTful API 的 Put 请求

我正在尝试通过为PhillipsHuelightAPI创建一个OSX应用程序来学习Swift。但是,我在这里觉得很傻,我什至无法让一个简单的例子起作用。我在XCode6.1中使用这个库:https://github.com/hallas/agent这是我使用的代码:importFoundationletdone={(response:NSHTTPURLResponse!,data:Agent.Data!,error:NSError!)->Voidin//reacttotheresultofyourrequest};Agent.put("/api/[username]/lights/2/

pattern-matching - 由于 Swift 模式匹配中的顺序导致的意外结果

对于“这不应该行吗?”的问题,我们深表歉意。问题。但我想不出更好的表达方式。enumMyEnum{caseA,B,C}lettuple=(MyEnum.C,MyEnum.A)varx:Stringswitchtuple{case(.A,_):x="(A,something)"case(_,.A):x="(something,A)"case(_,.B):x="(something,B)"case(.C,.C):x="(C,C)"default:x="default"}x//->"default"x的计算结果为"default",这意味着采用了默认分支。但是,我期望"(something,

cocoa - 如何禁用 NSScrollView 的水平滚动?

我首先尝试通过设置禁用滚动条:scrollView!.hasHorizontalScroller=false这成功了,但我仍然可以使用触控板从左向右滚动。有没有办法确保NSScrollView对象完全禁用水平滚动? 最佳答案 即使内容大小正确,我仍然能够使用双指手势水平滚动一点,然后它会弹回原位。要解决此问题,您可以设置弹性:scrollView.horizontalScrollElasticity=.None 关于cocoa-如何禁用NSScrollView的水平滚动?,我们在Stac

cocoa - 使 Swift 类符合需要 init 的协议(protocol)

我在Swift中有以下协议(protocol):protocolFooConvertible{typealiasFooTypeinit(foo:FooType)}我可以让Swift类在类定义中符合它:classBar:FooConvertible{varbaz:String=""requiredinit(foo:String){baz=foo}}到目前为止一切顺利。但是,当我尝试在扩展中使一个类符合它时,问题就出现了(对于Cocoa类,这是我唯一的选择,因为我没有源代码):classBaz{varbaz=""}extensionBaz:FooConvertible{requiredco

swift 4 : pattern match an object against a tuple (Tuple pattern cannot match values of the non-tuple type)

我有一个包含几个字段的自定义结构,我想在快速switch语句中对其进行模式匹配,这样我就可以通过将其中一个字段与另一个字段进行比较来自定义匹配正则表达式。例如鉴于这种结构:structMyStruct{letheader:Stringlettext:String}我喜欢像这样进行模式匹配:switch(someInstance){case("h1","[a-z]+"):...case("h1","0-9+"):...}我尝试使用如下模式匹配函数让它工作:func~=(pattern:(String,String),value:MyStruct)->Bool{returnvalue.he

swift - OS X cocoa swift : Setting up a ViewController programmatically (without Storyboard or nib files)

我目前正在尝试以纯编程方式(没有Storyboard和nib文件)重建现有项目。我知道已经有一些关于此的帖子,但它们并没有真正帮助我。这是一种解决方法:主.swiftimportCocoaletdelegate=AppDelegate()NSApplication.shared().delegate=delegateletret=NSApplicationMain(CommandLine.argc,CommandLine.unsafeArgv)`AppDelegate.swiftimportCocoaclassAppDelegate:NSObject,NSApplicationDele

swift - 如何使用 Cocoa 在 Swift 中创建 PDF (Mac)

Xcode7.3.2、Swift2、Cocoa(Mac)。我的应用涉及用户输入一些文本,这些文本可以导出为PDF。在我的应用程序的iOS版本中,我可以使用CoreText框架相对轻松地创建PDF:lethtml="\(title)\(string)"letfmt=UIMarkupTextPrintFormatter(markupText:html)//2.AssignprintformattertoUIPrintPageRendererletrender=UIPrintPageRenderer()render.addPrintFormatter(fmt,startingAtPageAt