import { UIButton, UIControl,ButtonType } from "UIKit" export class NativeButton { element : UniNativeViewElement; button : UIButton; constructor(element : UniNativeViewElement) { this.element = element; this.button = new UIButton(type=UIButton.ButtonType.system) super.init() // 在 swift target-action 对应的方法需要以OC的方式来调用,那么OC语言中用Selector来表示一个方法的名称(又称方法选择器),创建一个Selector可以使用 Selector("functionName") 的方式。 const method = Selector("buttonClickAction") // button 添加点击回调 button.addTarget(this, action = method, for = UIControl.Event.touchUpInside) this.bind(); } // element 绑定原生view bind() { this.element.bindIOSView(this.button); } // 更新button文字 updateText(text : string) { this.button.setTitle(text, for = UIControl.State.normal) } /** * 按钮点击回调方法 * 在 swift 中,所有target-action (例如按钮的点击事件,NotificationCenter 的通知事件等)对应的 action 函数前面都要使用 @objc 进行标记。 */ @objc buttonClickAction() { // 发送事件 let event = new UniNativeViewEvent("customClick") this.element.dispatchEvent(event) } destroy() { UTSiOS.destroyInstance(self) } }