我在堆栈视图内的故事板中创建了一个文本字段和按钮。我希望我的按钮位于文本字段内。对于这个内部代码我已经写了:
textField.rightView = button
textField.rightViewMode = .always
在故事板中,我为它们设置了高度和宽度约束,我的按钮宽度为 30,高度为 30。
我有一个错误
我应该给予哪些约束才能将按钮放置在 Textview 中。
AFAIK,在 Interface Builder(Storyboard/Xib)上不允许将视图作为左/右视图拖到 UITextField 中。因此,必须以编程方式添加。
您无法直接编辑文本字段
rightView
框架/约束。为了使其工作,您需要子类化 UITextField
并重写 rightViewRect
函数。基本上,您不需要为按钮提供任何约束。但是,可点击区域仅位于父视图(UITextField)内部。
class CustomTextField: UITextField {
override func rightViewRect(forBounds bounds: CGRect) -> CGRect {
.init(x: self.frame.width - 60, y: 0, width: 60, height: 30)
}
}