草庐IT

swift - Swift 中的子类 NSApplication

我创建了NSApplication子类:classMyApplication:NSApplication{overridefuncsendEvent(theEvent:NSEvent){iftheEvent.type==NSEventType.KeyUp&&(theEvent.modifierFlags&.CommandKeyMask).rawValue!=0{self.keyWindow?.sendEvent(theEvent)}else{super.sendEvent(theEvent)}}}之后,我将Info.plist中的“Principalclass”更改为MyApplica

ios - 子类化 MKGeodesicPolyline

我正在尝试子类化MKPolyline和MKGeodesicPolyline来存储它们自己的颜色(通过让子类实例返回它们自己的MKPolylineRenderer).它适用于MKPolyline,但我的MKGeodesicPolyline子类的实例不是子类-只是MKGeodesicPolyline。谁能解释为什么?这是我的代码...protocolMapLineProtocol:MKOverlay{varwidth:CGFloat{getset}varcolour:UIColor{getset}}extensionMapLineProtocol{varrenderer:MKPolylin

ios - 在 XCTestCase 子类中使用泛型是否有效?

我有一个看起来像这样的XCTestCase子类。为简洁起见,我删除了setup()和tearDown方法:classViewControllerTests:XCTestCase{varviewController:T!finalfuncloadControllerWithNibName(string:String){viewController=T(nibName:string,bundle:NSBundle(forClass:ViewControllerTests.self))if#available(iOS9.0,*){viewController.loadViewIfNeeded

ios - UILabel 子类 - 尽管标签高度正确,但文本在底部被截断

UILabel子类在底部截断文本时遇到问题。标签的高度适合文本,底部留有一些空间,但文本仍被截断。红色条纹是添加到标签层的边框。我将标签子类化以添加边缘插入。overridefuncsizeThatFits(size:CGSize)->CGSize{varsize=super.sizeThatFits(size)size.width+=insets.left+insets.rightsize.height+=insets.top+insets.bottomreturnsize}overridefuncdrawTextInRect(rect:CGRect){super.drawTextI

ios - 如何使用 IBOutlet 子类化变量?

我的特定类的所有后代都有一个UILabel实例变量。所以在我的父类中我有varlabel:UILabel。我也想把它放在子类中,但作为IBOutlet。我该怎么做?我添加了同名的IBOutlet,并在两个变量声明中添加了weak。但是我收到有关“无法使用存储的属性覆盖”的错误消息。我应该怎么做?是否有可能不必实例化父类(superclass)的版本,因为我只希望它用于子类化? 最佳答案 这样做是在子类中重新声明label属性。IBOutlet只是一个用于使用InterfaceBuilder的编译器概念。在Swift中,存储的属性不能

ios - Swift 协议(protocol) - 属性类型子类

我正在定义一个名为PanelController的协议(protocol),我想在其中存储一个PanelView。PanelView本身是UIView的子类,定义了面板的基本结构。我有三个不同的View,它们是PanelView的子类:LeftPanel、MidPanel和RightPanel。对于这些面板中的每一个,我想定义一个符合PanelController协议(protocol)的xxxPanelController(左、中、右)。我遇到的问题是协议(protocol)和xxxPanelControllerprotocolPanelController{varpanelView

子类化 NSObject 和使用泛型时 Swift 编译错误

以下Swift代码在构建时生成编译错误:importFoundationclassWrapper:NSObject{letobj:Tinit(x:T){self.obj=x}}是我做错了什么还是编译器错误?如果是这样,我可以做些什么来解决它?错误日志:CompileSwiftnormali386com.apple.xcode.tools.swift.compilercd/Users/hermespique/workspace/HanekeSwiftexportPATH="/Applications/Xcode6-Beta.app/Contents/Developer/Platforms

swift - Swift 5 编译器有时不调用子类中的委托(delegate)方法

编辑:作为sunshinejr指出here,这个问题已经修复,将与下一个Xcode/Swift版本一起发布。在使用Swift4和Swift5代码库将Xcode10.1更新到Xcode10.2后,我看到了很多奇怪的行为。问题之一是在一个ViewController上不再调用ScrollView委托(delegate)方法。简化的View层次结构如下:|ScrollView(ParentScrollView)|--StackView|----ScrollView(ChildScrollView)|----ScrollView(ChildScrollView)|----ScrollView(

ios - 子类中未调用 Swift 3 ObjC 可选协议(protocol)方法

我有以下类层次结构:classScrollableViewController:UIViewController,UITableViewDelegate{//...}它实现了一个UITableViewDelegate协议(protocol)方法,例如tableView:willDisplayCellAt:在我继承自ScrollableViewController的类SpecificScrollableViewController中,不再调用新的可选协议(protocol)方法,例如tableView(_:heightForRowAt:) 最佳答案

ios - UINavigationController子类方便初始化使子类常量init两次

我有UINavigationController和UITableViewController的子类。为了初始化子类,我决定使用一些convenienceinit方法来调用父类(superclass)的一些指定初始化程序。此外,每个子类都有一些let常量:letsomeValue:SomeClass=SomeClass()每个类都通过调用其新创建的convenienceinit方法成功初始化。问题是let常量在UINavigationController子类中初始化了TWICE。importUIKitimportPlaygroundSupportfinalclassNavigation: