https://kotlinlang.org logo
Title
s

Shivam Kanodia

05/11/2023, 7:32 AM
#compose-ios Unable to dismiss keyboard using
UIKitView. 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()
        },
    )
    }
j

Jan

05/11/2023, 8:39 AM
Check lines 27/28 ...
s

Shivam Kanodia

05/11/2023, 9:25 AM
@Jan Thanks
j

Jan

05/11/2023, 9:25 AM
glad to help