2013-09-27 5 views
0

Я пытаюсь открыть контроллер табличного представления, когда я нажимаю UITextField. Я добавил push-сегу в свой UITextField. Однако вместо того, чтобы переключать на новый вид, открывается клавиатура.Откройте новое представление при нажатии UITextField (текстовое поле Round Style)

В чем может быть проблема?

+0

Аналогичный вопрос был здесь спросил: http://stackoverflow.com/questions/18976487/how-to-navigate- to-next-uiviewcontroller-using-uitextview-in-ainavigationbar/18976596 # 18976596 –

ответ

0

вам необходимо проверить UItapGestureRecognizer. вам нужно добавить TapGesture Recognizer на textField, когда пользователь нажал на textField. затем вызовите метод tapGestureRecognizer и сделайте то, что вы хотите здесь.

UITapGestureRecognizer * recog=[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tapped:)]; 

    recog.numberOfTapsRequired=1; 
    recog.delegate=self; 

    [self.view addGestureRecognizer:recog]; 


    -(void)tapped:(UIGestureRecognizer *)gesture 
    { 

     // Do what you want here 

    } 

2) второй путь

добавить TextField delegatei в .h файле.

- (void)textFieldDidBeginEditing:(UITextField *)textField 
    { 
     //Do what you want here.. 
    } 

попробовать это ...

1

первым в файле .m объявить UITextView делегат:

@interface ViewController()<UITextFieldDelegate> 

в viewDidLoad:

self.textField.delegate = self; 

Реализуйте метод textFieldDidBeginEditing:(UITextField *)textField:

- (void)textFieldDidBeginEditing:(UITextField *)textField 
    { 
     //segue over here 
    } 
1

Попробуйте реализовать метод textFieldShouldBeginEditing:UITextViewDelegate. Это будет выглядеть примерно так:

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField { 
    if (textField == myTextField) { 
     // Open the new ViewController here 

     return NO; 
    } 
    return YES; 
} 

Вы также должны установить делегат: myTextField.delegate = self;

+0

Вы ничего не должны возвращать ... Это метод пустоты. –

Смежные вопросы