在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...
}
}