在Kotlin IOS中添加UIButton click监听器有没有一种简单的方法?

在Kotlin IOS中添加UIButton click监听器有没有一种简单的方法?,kotlin,uikit,kotlin-multiplatform-mobile,Kotlin,Uikit,Kotlin Multiplatform Mobile,addTarget(Kotlin)的签名为: public open外部目标( 目标:有吗?, 操作:COpaquePointer?/*=CPointer?*/,, forControlEvents:UIControlEvents/*=ULong*/ ):单位 我想我知道如何输入C函数指针,但这里似乎不是这样…?在这里找到了解决方案: 关键是使用sel_registerName创建指针并用@ObjCAction注释目标: import kotlinx.cinterop.ObjCAction

addTarget
(Kotlin)的签名为:

public open外部目标(
目标:有吗?,
操作:COpaquePointer?/*=CPointer?*/,,
forControlEvents:UIControlEvents/*=ULong*/
):单位
我想我知道如何输入C函数指针,但这里似乎不是这样…?

在这里找到了解决方案:

关键是使用
sel_registerName
创建指针并用
@ObjCAction
注释目标:

import kotlinx.cinterop.ObjCAction
import platform.UIKit.*
import platform.objc.sel_registerName

class MyClass() {

    val uiButton = UIButton.buttonWithType(UIButtonTypeSystem)

    init {
        uiButton.setTitle("Click me", UIControlStateNormal)
        uiButton.addTarget(this, sel_registerName("clicked"), UIControlEventTouchUpInside)
    }

    @ObjCAction
    fun clicked() {
       // React to click here...
    }

}
import kotlinx.cinterop.ObjCAction
import platform.UIKit.*
import platform.objc.sel_registerName

class MyClass() {

    val uiButton = UIButton.buttonWithType(UIButtonTypeSystem)

    init {
        uiButton.setTitle("Click me", UIControlStateNormal)
        uiButton.addTarget(this, sel_registerName("clicked"), UIControlEventTouchUpInside)
    }

    @ObjCAction
    fun clicked() {
       // React to click here...
    }

}