首页 > 解决方案 > 更改 UISearchBar 中 clearbutton 的宽度和高度以修复 IOS 中的可访问性问题

问题描述

我正在努力实现 IOS 中屏幕的可访问性。屏幕包含 UISearchBar,我可以根据可访问性设置中的系统字体更改来缩放/更改搜索栏的高度和其中的文本字段以及文本字段的文本字体。但是,我无法更改用户在搜索中键入时出现的默认清除按钮的宽度和高度。我想根据系统字体大小的变化来改变清除按钮的高度和宽度。我尝试了下面的代码,但它没有修改清除按钮的高度和宽度。我希望清除按钮具有相同的宽度和高度,因此使用“newHeight”来设置高度和宽度。关于如何修改 UISearchBar 中默认清除按钮的高度和宽度的任何指针。

func searchBarTextDidBeginEditing(_ searchBar: UISearchBar) {
        if let textField = searchBar.textField, let clearButton = textField.value(forKey: "_clearButton") as? UIButton {
            let newHeight = UIFontMetrics(forTextStyle: .body).scaledValue(for: clearButton.frame.height)
            clearButton.frame.size = CGSize(width: newHeight, height: newHeight)


        }
    }

仅供参考,我在 UISearchBar 上创建了一个扩展方法来检索 textField。因此,您可以假设 searchBar.textField 返回文本字段。

标签: iosswiftaccessibility

解决方案


推荐阅读