Shivam Kanodia
05/11/2023, 7:32 AMUIKitView. Does anyone know how to dismiss keyboard on touch outside or focus lost?
@Composable
actual fun ComposeUITextField(value: String, onValueChange: (String) -> Unit, modifier: Modifier) {
val textField = object : UITextField(CGRectMake(0.0, 0.0, 0.0, 0.0)) {
@ObjCAction
fun editingChanged() {
onValueChange(text ?: "")
}
}
UIKitView(
factory = {
textField.delegate = null
// textField.keyboardType = UIKeyboardType.UIKeyboardTypeEmailAddress
textField.addTarget(
target = textField,
action = NSSelectorFromString(textField::editingChanged.name),
forControlEvents = UIControlEventEditingChanged
)
textField
},
modifier = modifier.height(50.dp).onFocusChanged {
if (it.isFocused) {
// textField.resignFirstResponder()
} else {
// textField.resignFirstResponder()
}
}.onFocusEvent { focusState ->
if (focusState.isFocused) {
// textField.becomeFirstResponder()
} else {
// textField.resignFirstResponder()
}
},
update = { textField ->
textField.text = value
},
onRelease = { textField ->
textField.removeTarget(
target = textField,
action = NSSelectorFromString(textField::editingChanged.name),
forControlEvents = UIControlEventEditingChanged
)
// textField.resignFirstResponder()
},
)
}
Jan
05/11/2023, 8:39 AMShivam Kanodia
05/11/2023, 9:25 AMJan
05/11/2023, 9:25 AM