Возможно, вы захотите использовать свойство rightView
UITextField.По сути, есть два свойства (это и leftView
соответственно), которые позволяют вам размещать пользовательские представления / элементы управления внутри UITextField.Вы можете контролировать, будут ли отображаться эти представления, с помощью rightViewMode
/ leftViewMode
свойств:
UIButton *myButton = [UIButton new];
// configure your button here
myTextField.rightView = myButton;
myTextField.rightViewMode = UITextFieldViewModeUnlessEditing; // check the docs for other possible values
Также есть метод с именем rightViewRectForBounds:
, который возвращает CGRect, где ваш пользовательский вид / элемент управленияпойдет.Вы не должны передавать туда размеры вашей кнопки напрямую, вместо этого, если вы хотите разместить что-то, что определенно больше, чем прямоугольник, который возвращает этот метод (кажется, что UITextField вызывает его от вашего имени, когда вы помещаете представление внутри него), ваше представлениебудет масштабироваться, чтобы соответствовать этому прямоугольнику.В этом случае вы, возможно, захотите переопределить его (создайте свою категорию или, возможно, подкласс UITextField. Предполагая, что вы выбираете категорию, ваша UITextField + MyButton должна выглядеть примерно так:
@interface UITextField(MyButton)
- (CGRect)rightViewRectForBounds:(CGRect)bounds;
@end
@implementation UITextField(MyButton)
- (CGRect)rightViewRectForBounds:(CGRect)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
надеюсь, что это поможет. Икак отмечено в другом ответе, сначала проверьте документы, чтобы узнать, какие методы могут вам помочь.