Questions tagged «selector»

选择器可以是用Objective-C或Smalltalk编程语言标识方法名称的字符串,也可以是计算机中用于将多条线路(I / O)连接到一条线路的特殊类型的开关。请不要将此标签用于jQuery / CSS选择器。

3
如何使用Swift #selector语法解决“模棱两可”的编译错误?
[注意此问题最初是在Swift 2.2下提出的。它已针对Swift 4进行了修订,涉及两个重要的语言更改:第一个方法参数external不再被自动抑制,并且选择器必须显式地暴露给Objective-C。 假设我在课堂上有以下两种方法: @objc func test() {} @objc func test(_ sender:AnyObject?) {} 现在,我想使用Swift 2.2的新#selector语法创建一个与这些方法中的第一个相对应的选择器func test()。我该怎么做?当我尝试这个: let selector = #selector(test) // error ...我收到一个错误消息:“的歧义使用” test()。但是如果我这样说: let selector = #selector(test(_:)) // ok, but... ...错误消失了,但是我现在指的是错误的方法,即带有参数的方法。我想引用不带任何参数的那个。我该怎么做? [注意:该示例不是人为的。NSObject同时具有Objective-Ccopy和copy:实例方法Swiftcopy()和copy(sender:AnyObject?); 因此这个问题很容易在现实生活中出现。]
79 swift  selector 


10
尝试处理iOS中的“后退”导航按钮操作
我需要检测用户何时单击导航栏上的“后退”按钮,以便在发生这种情况时执行一些操作。我正在尝试通过以下方式手动将操作设置为此类按钮: [self.navigationItem.backBarButtonItem setAction:@selector(performBackNavigation:)]; - (void)performBackNavigation:(id)sender { // Do operations [self.navigationController popViewControllerAnimated:NO]; } 我首先将该代码放在视图控制器本身中,但是我发现它self.navigationItem.backBarButtonItem似乎是nil,因此我将相同的代码移到了父视图控制器中,后者将前者推到导航堆栈中。但是我都无法使它工作。我已经阅读了有关此问题的一些帖子,其中一些帖子说选择器需要在父视图控制器上进行设置,但是对我来说它还是不起作用...我在做什么错? 谢谢

6
在Swift中将参数传递给选择器
我正在以编程方式将UITapGestureRecognizer添加到我的视图之一: let gesture = UITapGestureRecognizer(target: self, action: #selector(self.handleTap(modelObj:myModelObj))) self.imageView.addGestureRecognizer(gesture) func handleTap(modelObj: Model) { // Doing stuff with model object here } 我遇到的第一个问题是“'#selector'的参数没有引用'@Objc'方法,属性或初始化程序。 很酷,所以我在handleTap签名中添加了@objc: @objc func handleTap(modelObj: Model) { // Doing stuff with model object here } 现在,我收到错误消息“无法将方法标记为@objc,因为无法在Objective-C中表示参数的类型。 它只是建筑物地图的图像,其中一些图钉图像指示了兴趣点的位置。当用户点击这些引脚之一时,我想知道他们轻按了哪个兴趣点,并且我有一个描述这些兴趣点的模型对象。我使用此模型对象为钉图提供其在地图上的坐标,因此我认为将对象发送到手势处理程序会很容易。
76 ios  swift  uikit  selector 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.