Пользовательский inputAccessoryView UITextField с пользовательским inputView в iOS 26IOS

Программируем под IOS
Anonymous
Пользовательский inputAccessoryView UITextField с пользовательским inputView в iOS 26

Сообщение Anonymous »

Я пытаюсь использовать UIPickerView в качестве inputView текстового поля, а также добавить UIToolBar в качестве inputAccessoryView текстового поля.
В iOS 26 он добавляет какой-то странный прозрачный фон (полагаю, что это эффект жидкого стекла) под панелью инструментов.

Я хочу сохранить тот же вид, что и раньше.
Смотрите пример кода ниже с прикрепленными изображениями:

Код: Выделить всё

let keyboardToolbar = UIToolbar(frame: CGRect(origin: .zero, size: CGSize(width: 100, height: 44.0)))

let doneBarButton = UIBarButtonItem()
doneBarButton.title = "Done"

if #available(iOS 26.0, *) {
doneBarButton.hidesSharedBackground = true
}

keyboardToolbar.items = [doneBarButton]
textField.inputAccessoryView = keyboardToolbar

let picker = UIPickerView()
picker.backgroundColor = .white
textField.inputView = picker
iOS 18:
Изображение

iOS 26:
Изображение

Изменить:
Просто чтобы прояснить проблему. Кажется, что назначение пользовательского представления для inputAccessoryView И пользовательского представления для inputView заставляет систему добавлять это серое представление между ними.
Вот более простой пример, демонстрирующий такое поведение:

Код: Выделить всё

    let inputAccessoryView = UIView(frame: CGRect(x: 0, y: 0, width: .zero, height: 70))
inputAccessoryView.backgroundColor = .red
textField.inputAccessoryView = inputAccessoryView

let inputView = UIView(frame: CGRect(x: 0, y: 0, width: .zero, height: 70))
inputView.backgroundColor = .blue
textField.inputView = inputView
Изображение


Подробнее здесь: https://stackoverflow.com/questions/798 ... -in-ios-26

Вернуться в «IOS»