как отклонить клавиатуру, когда вы заканчиваете вводить в iphone? - PullRequest
3 голосов
/ 02 февраля 2011

Я пишу простой код, как показано ниже ,,,,

- (void)viewDidLoad {
    [super viewDidLoad];


    restaurant_name = [[UILabel alloc] initWithFrame:CGRectMake(20, 83, 135, 21)];
    [restaurant_name setBackgroundColor:[UIColor clearColor]];
    [restaurant_name setText: @"Restaurant Name"];
    [self.view addSubview:restaurant_name];

    restaurant_name_textfield = [[UITextField alloc] initWithFrame:CGRectMake(160, 80, 150, 31)];
    [restaurant_name_textfield setBackgroundColor:[UIColor clearColor]];
    [restaurant_name_textfield setBorderStyle:UITextBorderStyleRoundedRect];
    [restaurant_name_textfield resignFirstResponder];
    [self.view addSubview:restaurant_name_textfield];

    restaurant_name_save = restaurant_name_textfield.text;
    //NSLog(restaurant_name_save);

    picker_delivery = [[UILabel alloc] initWithFrame:CGRectMake(115, 113, 110, 25)];
    [picker_delivery setBackgroundColor:[UIColor clearColor]];
    [picker_delivery setFont:[UIFont fontWithName:@"Arial" size:18]];
    [picker_delivery setText: @"Pick/Delivery"];

    [self.view addSubview:picker_delivery];

    amount = [[UILabel alloc] initWithFrame:CGRectMake(20, 153, 150, 20)];
    [amount setText: @"Amount"];
    [amount setBackgroundColor:[UIColor clearColor]];
    [self.view addSubview:amount];

    amount_textfield = [[UITextField alloc] initWithFrame:CGRectMake(160,150 , 150, 31)];
    [amount_textfield setBackgroundColor:[UIColor clearColor]];
    [amount_textfield setBorderStyle:UITextBorderStyleRoundedRect];
    [self.view addSubview:amount_textfield];

    ready_in = [[UILabel alloc] initWithFrame:CGRectMake(20, 188, 150, 20)];
    [ready_in setText:@"Ready in"];
    [ready_in setBackgroundColor:[UIColor clearColor]];
    [self.view addSubview:ready_in];

    ready_in_textfield = [[UITextField alloc] initWithFrame:CGRectMake(160, 185, 150, 31)];
    [ready_in_textfield setBackgroundColor:[UIColor clearColor]];
    [ready_in_textfield setBorderStyle:UITextBorderStyleRoundedRect];
    [self.view addSubview:ready_in_textfield]; 

    reminder = [[UILabel alloc] initWithFrame:CGRectMake(20, 230, 150, 20)];
    [reminder setText: @"Reminder"];
    [reminder setBackgroundColor:[UIColor clearColor]];
    [self.view addSubview:reminder];

    mySwitch = [[UISwitch alloc] initWithFrame:CGRectMake(220, 230, 50, 50)];
    [self.view addSubview:mySwitch];



    start_button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    [start_button setFrame:CGRectMake(100, 300, 100, 50)];
    [start_button setTitle:@"Start" forState:UIControlStateNormal];
    //[myButton setImage:myButtonImage forState:UIControlStateNormal];

    [start_button addTarget:self action:@selector(saveData) 
       forControlEvents:UIControlEventTouchUpInside];



        [self.view addSubview:start_button];


}



-(BOOL) textFieldShouldReturn:(UITextField*) textField {
    [textField resignFirstResponder]; 
    return YES;
}

Это кодирование RestaurantViewController.m но ничего не происходит, когда я нажимаю клавишу возврата,

любая идея ???

Ответы [ 3 ]

3 голосов
/ 02 февраля 2011

Убедитесь, что ваш контроллер вида принимает протокол <UITextFieldDelegate>.Затем установите для свойства .delegate каждого из ваших UITextFields значение self:

amount_textfield.delegate = self;

Кроме того, ВСЕ, что вы выделяете, и init должны быть release 'ed.В этом случае это, вероятно, должно произойти сразу после вызова addSubview:, который добавляет каждую такую ​​вещь в суперпредставление.

1 голос
/ 02 февраля 2011

ваш .h файл должен быть таким:

@interface Book : UIViewController<UITextFieldDelegate> {

UITextField * amount_textfield;

}

и ваш файл реализации должен быть:

    - (void)loadView {

amount_textfield = [[UITextField alloc] initWithFrame:CGRectMake(60, 120, 200, 40)];
amount_textfield.delegate=self;
[ContentView addSubview:amount_textfield];}

- (BOOL) textFieldShouldReturn: (UITextField *) textField {[textField resignFirstResponder];вернуть Да;}

0 голосов
/ 02 февраля 2011

Вы подключили делегатов текстовых полей к контроллеру? Например, restaurant_name.delegate = self? Это необходимо сделать для всех текстовых полей, для которых клавиатура должна быть закрыта при нажатии клавиши Return.

...