草庐IT

cocoa-design-patterns

全部标签

cocoa - NSStatusItem 自定义 View NSDraggingDestination 仅在单击项目后有效

我有一个带有自定义View的NSStatusItem,它实现了NSDraggingDestination协议(protocol)。但是,拖放只有在状态项至少被单击/激活一次时才有效。我希望自定义View无论如何都接受掉落。展示问题的gif:上述示例中的代码(或XcodeProject):importCocoaclassAppDelegate:NSObject,NSApplicationDelegate{funcapplicationDidFinishLaunching(aNotification:NSNotification?){letvc=StatusItemViewControll

ios - 在 Swift 中获取 Cocoa Touch Framework 项目版本字符串

CocoaTouchFrameworks提供对版本控制的支持,可以在Versioning部分下的BuildSettings中找到。要在运行时访问这个值,我们可以使用FrameworkVersionNumber和FrameworkVersionString[]作为构建过程的一部分为我们自动生成的变量。在使用Swift项目时,可以在Objective-C兼容性header的顶部找到自动生成的这些://!ProjectversionnumberforFramework.FOUNDATION_EXPORTdoubleFrameworkVersionNumber;//!Projectversio

macos - 在控制台应用程序中使用 swift 处理 cocoa 键事件(按下键)

好的,所以我正在尝试登录控制台输出按下了哪些键。我只是无法理解cocoa结构,无论是Obj-c还是swift。我不是这两种语言的高手,但是……这是我的代码:importCocoaimportFoundationimportAppKitvarloop=truevaridRegisterdEvent:AnyObject?=nilfunchandlerEvent(myEvent:(NSEvent!))->Void{print(myEvent.keyCode)}whileloop{idRegisterdEvent=NSEvent.addGlobalMonitorForEventsMatchin

cocoa-touch - UITableViewDataSource 方法的重新声明无效?

我正在尝试实现UITableViewDataSource所需的方法,但我遇到了一个奇怪的错误:"invalidredeclarationof'tableview(_:cellForRowAtIndexPath:)'"但是我不确定是什么问题。这是两行相关的代码,类的声明和符合协议(protocol)/父类(superclass):classSubjectFormViewController:UIViewController,UITableViewDelegate,UITableViewDataSource以及触发错误的函数声明:functableView(tableView:UITabl

cocoa - Swift 和 Core Data 错误 : fatal error: use of unimplemented initializer 'init(entity:insertIntoManagedObjectContext:)'

我有以下继承自NSManagedObject的类:importFoundationimportCoreDataclassNote:NSManagedObject{@NSManagedvartext:String@NSManagedvarname:Stringinit(name:String,text:String,context:NSManagedObjectContext){letentity=NSEntityDescription.entityForName("Note",inManagedObjectContext:context);super.init(entity:entit

cocoa - 使用 Swift 模拟按键

我正在寻找一种在OSX中模拟击键的方法。我找到了另一个使用Objective-C的解决方案(Simulatekeypressforsystemwidehotkeys),但我需要使用Swift来完成。我如何调整CGEventCreateKeyboardEvent? 最佳答案 使用Swift3letsrc=CGEventSource(stateID:CGEventSourceStateID.hidSystemState)letcmdd=CGEvent(keyboardEventSource:src,virtualKey:0x38,key

cocoa - 更改 NSSlider 栏颜色

我有一个NSWindow和一个水平NSSlider。当窗口背景颜色改变时,我想改变slider右侧部分的颜色。目前,当窗口背景较暗时,栏的右侧部分不再可见。注意:窗口背景实际上是我通过覆盖窗口View子类中的drawRect绘制的渐变。我想我可以通过子类化NSSliderCell并重写一些方法,比如drawBarInside来改变slider的填充颜色,但我不明白它是如何工作的:我应该做一个小方形图像并在旋钮后的矩形中重复绘制它?或者也许只是画一条彩色线?我以前从未这样做过。我看过thisquestion这很有趣,但它是关于绘制旋钮的,我现在不需要它。我也看过thisone这看起来很有

swift - 如何使用 SwiftPM 创建 Cocoa GUI 应用程序

我想将我的代码库拆分成一个我想上传到github的库和一个GUI应用程序。我希望使用最近推出的SwiftPM是个好主意。但我能找到的所有示例都显示了使用swiftpackageinit--typeexecutable创建控制台应用程序。我想知道如何使用所有预生成的东西(如Assets、Storyboard等)为macOSCocoa应用程序创建框架?如果能访问这样有用的东西就好了:swiftpackagebuildswiftpackagetestswiftpackageupdate...有什么想法吗?谢谢! 最佳答案 这是我使用SPM

cocoa - Swift 使用 NSStatusBar statusItemWithLength 和 NSVariableStatusItemLength

我正在尝试重写StatusBarProgrammingTopics中的以下代码在Swift中。NSStatusBar*bar=[NSStatusBarsystemStatusBar];theItem=[barstatusItemWithLength:NSVariableStatusItemLength];[theItemretain];[theItemsetTitle:NSLocalizedString(@"Tablet",@"")];...到目前为止我的Swift代码:letbar=NSStatusBar.systemStatusBar()letsm=bar.statusItemWi

ios - 在 Cocoa Touch Framework 中包装静态库

我有一个带有2个架构切片(armv7、arm64)的胖静态库。我试图让它与swift一起工作并将其包装到CocoaTouchFramework中。我的工作:创建CocoaTouchFramework项目将.a带标题的静态库拖到将OTHER_LDFLAGS设置为-all_load将ONLY_ACTIVE_ARCH设置为NO将VALID_ARCHS和ARCHS设置为armv7和arm64使用发布构建配置构建从DerivedData/../../Products/中获取.framework文件当我将这个.framework放入我的swift项目中,添加到我的目标常规设置中的嵌入式二进制文件部