Добавить метку в UITextField - PullRequest
5 голосов
/ 14 апреля 2009

В вопросе 663830 Исаак спрашивает о добавлении кнопки в текстовое поле. Может кто-нибудь показать код для добавления метки к свойству .rightView?

Или, есть ли лучший способ включить «постоянный» текст в текстовое поле?

Это для калькулятора, который будет включать в себя единицы измерения в поле (мг, кг и т. Д.) Без необходимости сохранять метку вне текстового поля. Вроде как постоянный заполнитель текста?

Спасибо, Chris

Ответы [ 3 ]

10 голосов
/ 14 апреля 2009

Быстрый и грязный код:

- (void)viewDidLoad {
    [super viewDidLoad];
    UITextField *textField = [[UITextField alloc] initWithFrame:CGRectMake(100, 100, 100, 40)];
    textField.borderStyle = UITextBorderStyleLine;
    UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 40, 40)];
    label.text = @"mg";
    label.backgroundColor = [UIColor colorWithWhite:0.0 alpha:0.0];
    textField.rightViewMode = UITextFieldViewModeAlways;
    textField.rightView = label;
    [self.view addSubview:textField];
    [label release];
    [textField release];
}

Обратите внимание, что я добавляю подпредставление из ViewController, вы также можете сделать это из представления.

3 голосов
/ 12 ноября 2013

Свойство leftView (или rightView) на UITextField стоит денег на этом. Очень легко сделать «постоянный» текст в текстовом поле.

- (void)loadView
{
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 40, 40)];
label.text = @"To:";
label.backgroundColor = [UIColor colorWithWhite:0.0 alpha:0.0];
self.UITextField.leftViewMode = UITextFieldViewModeAlways;
self.UITextField.leftView = label;
}
2 голосов
/ 15 мая 2015

Я знаю, что могу немного опоздать на вечеринку, но уверен, что это может помочь будущим программистам, столкнувшимся с такой же ситуацией.

Возможно, вы захотите создать категорию, чтобы упростить ее использование в нескольких приложениях, например:

UITextField + PaddingLabel.h

#import <UIKit/UIKit.h>

@interface UITextField (PaddingLabel)

-(void) setLeftPaddingText:(NSString*) paddingValue width:(CGFloat) width;

-(void) setRightPaddingText:(NSString*) paddingValue width:(CGFloat) width;

@end

UITextField + PaddingLabel.m

#import "UITextField+PaddingLabel.h"

@implementation UITextField (PaddingLabel)

-(void) setLeftPaddingText:(NSString*) paddingValue width:(CGFloat) width
{
    UILabel *paddingLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, width, self.frame.size.height)];
    paddingLabel.text = paddingValue;
    self.leftView = paddingLabel;
    self.leftViewMode = UITextFieldViewModeAlways;
}

-(void) setRightPaddingText:(NSString*) paddingValue width:(CGFloat) width
{
    UILabel *paddingLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, width, self.frame.size.height)];
    paddingLabel.text = paddingValue;
    self.rightView = paddingLabel;
    self.rightViewMode = UITextFieldViewModeAlways;
}

@end

Пример использования:

[self.dateTextField setLeftPaddingText:@"DATE:" width:defaultWidth];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...