Как расположить свой пользовательский элемент управления UIView, полученный из UITextField - PullRequest
0 голосов
/ 04 января 2011

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

См. Снимок экрана:

http://lh3.ggpht.com/_h3ntmj5-XE8/TSK_zj6GfcI/AAAAAAAAAv8/wNWvuXS5Qk8/s640/Screen%20shot%202011-01-03%20at%2010.33.00%20PM.png

Как вы можете видеть на картинке, перевернутая цифровая клавиатура - это мой пользовательский inputView, но я хочу иметь возможность расположить ее к середине экрана.

MyTextField.h

@interface MyTextField : UITextField {
    UIView *myInputView;
}
@property (nonatomic, retain) IBOutlet UIView *myInputView;
@end

MyTextField.m

@implementation MyTextField
@synthesize myInputView;

- (UIView *)inputView {
    NSLog(@"Return inputView");

    CGRect frame = CGRectMake(0, 200, 320, 215);
    [myInputView setFrame:frame]; 

    return myInputView;
}

- (void)dealloc {
    [super dealloc];
    [myInputView release];
}
@end

1 Ответ

2 голосов
/ 03 ноября 2011

Возможно, вы захотите НЕ реализовывать это с точки зрения представления ввода. Настройка вида ввода позволяет системе обрабатывать его так же, как он обращается с клавиатурой. Вы не можете установить рамку, только высоту. Я бы порекомендовал избавиться от UITextField и заменить его на UILabel на UIButton поверх него. Добавьте свой пользовательский вид ввода на основной вид и разместите его за пределами экрана. Когда кнопка нажата, оживите свой пользовательский вид ввода обратно на экран. Когда пользователь вводит данные, просто обновите метку. Не беспокойтесь о первом респонденте или о UITextField.inputView.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...