OStack程序员社区-中国程序员成长平台

标题: iphone - 在 UITextField 中添加按钮 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-12 18:56
标题: iphone - 在 UITextField 中添加按钮

我正在开发适用于 iOS 的浏览器应用程序,并希望在位置栏的文本字段内添加一个“阅读器”按钮,就像 Mobile Safari 在检测到该页面是一篇文章时所做的那样。 在 UITextField 右侧添加按钮有什么好方法?



Best Answer-推荐答案


您可能想要使用 UITextField 的 rightView 属性。基本上,有两个属性(这个和相应的 leftView)允许您在 UITextField 中放置自定义 View /控件。您可以通过 rightViewMode/leftViewMode 属性控制是否显示这些 View :

UIButton *myButton = [UIButton new];
// configure your button here
myTextField.rightView = myButton;
myTextField.rightViewMode = UITextFieldViewModeUnlessEditing; // check the docs for other possible values

另外,还有一个名为 rightViewRectForBounds: 的方法,它返回一个 CGRect ,您的自定义 View /控件将在其中运行。你不应该直接在那里传递你的按钮的尺寸,相反,如果你想放置的东西肯定比这个方法返回的 rect 大(当你在其中放置 View 时 UITextField 代表你调用它),你的 View 将被缩放以适应这个矩形。在这种情况下,您可能想要覆盖它(创建您的类别或 UITextField 的子类。假设您选择一个类别,您的 UITextField+MyButton 应该如下所示:

@interface UITextField(MyButton)
- (CGRect)rightViewRectForBoundsCGRect)bounds;
@end

@implementation UITextField(MyButton)

- (CGRect)rightViewRectForBoundsCGRect)bounds
{
    // return the CGRect that would fit your view/button. The buttons param that is passed here is the size of the view that is being added to the textField.
}

// possibly some other methods that you override

@end

希望这会有所帮助。如另一个答案所述,请先查看文档,看看有哪些方法可以帮助您。

关于iphone - 在 UITextField 中添加按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8927505/






欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) Powered by Discuz! X3.4