我们可以在基于 Storyboard 的 UIKit 应用程序的 Textfield 中添加一个按钮吗?

问题描述 投票:0回答:1

我在堆栈视图内的故事板中创建了一个文本字段和按钮。我希望我的按钮位于文本字段内。对于这个内部代码我已经写了:

    textField.rightView = button
    textField.rightViewMode = .always

在故事板中,我为它们设置了高度和宽度约束,我的按钮宽度为 30,高度为 30。

我有一个错误

我应该给予哪些约束才能将按钮放置在 Textview 中。

ios swift uikit uibutton storyboard
1个回答
1
投票
  1. AFAIK,在 Interface Builder(Storyboard/Xib)上不允许将视图作为左/右视图拖到 UITextField 中。因此,必须以编程方式添加。

  2. 您无法直接编辑文本字段

    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)
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.