Col*_*ole 7 cocoa-touch uikit uibarbuttonitem ios swift
我有一个条形按钮项目,我想以编程方式按,基本上相当于
buttonObj.sendActionsForControlEvents(UIControlEvents.TouchUpInside)
Run Code Online (Sandbox Code Playgroud)
但作为一个条形按钮项目
编辑:我忘了提,我不能简单地调用按钮的动作方法,因为我正在使用SWRevealViewController库并"revealToggle:"在条形按钮项上使用它们的动作,我不知道如何自己调用.
Sha*_*ngh 14
如果你看一下Objective-C等效问题,你会看到使用的实现performSelector:.在Swift中,您无权访问此方法.以下是Apple发布的官方消息:
performSelector:方法和相关的选择器调用方法不会在Swift中导入,因为它们本质上是不安全的.
您可以通过使用UIApplication.sendAction(_:to:from:forEvent:)来解决此问题.从技术上讲,你也应该在Objective-C中这样做.
假设你UIBarButtonItem被定义为barButtonItem.以下代码可以满足您的要求.
UIApplication.sharedApplication().sendAction(barButtonItem.action, to: barButtonItem.target, from: self, forEvent: nil)
Run Code Online (Sandbox Code Playgroud)
Swift 4(和3)语法
UIApplication.shared.sendAction(barButtonItem.action!, to: barButtonItem.target, from: self, for: nil)
Run Code Online (Sandbox Code Playgroud)
在Swift 5中工作:
_ = button.target?.perform(button.action, with: nil)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4746 次 |
| 最近记录: |