草庐IT

SELECTOR

全部标签

ios - 可重用的 Swift 扩展和选择器

是否存在任何解决方案来为更多类使用指向自身的选择器进行可重用协议(protocol)扩展?例如,我正在尝试制作扩展TimerHelper,它添加了适当的功能以与NSTimer一起使用。我发现了这个:https://forums.developer.apple.com/thread/26983https://forums.developer.apple.com/message/49465#49465但解决方案似乎有点曲折......我试图在代码中做的,当然是行不通的,是这样的:protocolTimerHelper{vartimer:NSTimer{getset}}extensionTi

swift - 如何使用 Swift #selector 语法解决 "ambiguous use of"编译错误?

[注意这个问题最初是在Swift2.2下制定的。它已针对Swift4进行了修订,涉及两个重要的语言更改:第一个方法参数external不再自动抑制,并且选择器必须显式暴露给Objective-C。]假设我的类(class)中有这两种方法:@objcfunctest(){}@objcfunctest(_sender:AnyObject?){}现在我想使用Swift2.2的新#selector使选择器对应于这些方法中的第一个的语法,functest().我该怎么做?当我尝试这个时:letselector=#selector(test)//error...我收到一个错误,“test()的用法

ios - Nil 与预期的参数类型选择器不兼容

在从Swift2.3转换到Swift3时,我收到以下代码行的上述错误:varcontactButton:UIBarButtonItem{returnself.CustomRightItem("icon-nav-nls-contact",target:self,action:nil)}问题出在nil操作上。我试过使用空选择器:#selector()和```#selector(nil)都无济于事。如何在Swift3中处理nil操作? 最佳答案 这显然是用于后续操作的占位符代码,因此请在代码最终将到达的位置使用占位符函数,然后根据需要调用

ios - 有没有办法在 iOS 应用程序的 VoiceOver 中更改默认辅助功能操作的文本?

我在我的应用程序中为VoiceOver用户添加了一些辅助功能自定义操作,但默认情况下它显示“激活项目,默认操作”。通过使用转子,VoiceOver用户将转子项目更改为操作,然后他们执行已注册的自定义操作(如删除或共享项目)。但是他们有默认操作,即“激活项目”。有没有办法更改此文本?我希望它说“播放此项目”。或者,如果我可以禁用默认操作,它也适用于我。UIAccessibilityCustomAction*action1=[[UIAccessibilityCustomActionalloc]initWithName:@"doubletaptoshare"target:selfselect

使用多个 UIGestureRecognizers 关闭 iOS 键盘

在包含UITextField和UITableView的主应用View中,我有使用UITapGestureRecognizer关闭的“常规”代码如果在我编辑UITextField的内容时检测到键盘外的点击,则虚拟键盘。一个附加功能是,只有在实际显示虚拟键盘时才启用-我不希望“背景点击”导致编辑在虚拟键盘不可见时结束,但我也不希望后台点击触发它们的正常行为-如果虚拟键盘当前正在显示,它们应该被消耗。overridefuncviewDidLoad(){...tapper=UITapGestureRecognizer(target:self,action:#selector(viewTappe

ios - 在#selector 函数中传递数据

我无法确定点击按钮时传递数据的最佳方式。我还想在点击按钮时为按钮设置动画。该按钮位于map注释的自定义标注View内。我尝试设置一个类属性dogIDOfUpvoteTapped,并使用它来存储数据,以便被调用的函数可以访问它。不幸的是,当我想与按钮本身交互时,事情变得复杂了。如何从调用的函数“upvoteButtonTapped”中获取对“CustomAnnotation”对象的引用?我省略了一堆不相关的代码,但这是我正在使用的代码:funcmapView(_mapView:MKMapView,didSelectview:MKAnnotationView){ifview.annotat

ios - 使用 IntentsUI 扩展中的 URL 打开应用程序

点击INUIHostedViewControllingViewController后,有没有办法向应用程序发送一些参数/URL?例如在Widget扩展中有:self.extensionContext?.open(cardURL,completionHandler:nil) 最佳答案 似乎某些扩展类型在使用extensionContext时受到更多限制。我在键盘扩展上遇到了同样的问题。这可能有点hacky,但下面的代码对我有用。funcopenUrl(url:URL?){letselector=sel_registerName("op

c# - MKMapView - 可拖动引脚导致放置错误?

有没有人遇到过这个错误(见下文)。当我在MKMapView中拖动一个图钉然后放下它时会发生这种情况......当放下应用程序崩溃时。我的MKAnnotation实现也有坐标的getter/setter!!!?System.Exception:Failedtofindselector_original_setCoordinate:onDivineiPhone.FoundAnnotationatMonoTouch.ObjCRuntime.Runtime.GetMethod(IntPtrklass,IntPtrselptr)[0x0001c]in/Users/plasma/Source/ip

objective-c - 是否可以根据设置更改启动图像?

在我的应用程序项目的资源中,我有Default.png这是我的应用程序启动图像。感谢设置包,用户可以更改启动View,所以我的问题是找到一种方法在用户更改设置时获取另一个启动图像。有办法吗? 最佳答案 不,您不能更改应用程序包中的文件。但是有可能找到另一个简单的解决方案-因为这只是在启动您的应用程序之后显示一个带有选定默认屏幕的View,然后在例如5秒显示您的主视图:+(NSTimer*)scheduledTimerWithTimeInterval:(NSTimeInterval)secondstarget:(id)targetse

ios - Xcode 4.2 错误 : receiver type for instance message does not declare a method with selector

ARC错误:“实例消息的接收器类型‘FirstViewController’未声明带有选择器‘updateWithEvent’的方法”我知道这是因为ARC,在xcode4.2中,但任何人都可以帮助解决这个问题:-(void)locationManager:(CLLocationManager*)managerdidEnterRegion:(CLRegion*)region{NSString*event=[NSStringstringWithFormat:@"didEnterRegion%@at%@",region.identifier,[NSDatedate]];[selfupdate