TextField不会使用UIModalPresentationFormSheet视图重新签署第一个响应者

时间:2011-11-01 17:35:37

标签: objective-c interface-builder ios5 xcode4.2 resignfirstresponder

我在一个viewController上创建了一个按钮,它使用UIModalPresentationFormSheet表示样式以模态方式加载另一个视图。在这个加载的视图中,我有两个textFields,并且我强制第一个textField成为第一个响应者,以便键盘将立即显示新视图。我已经将textFields设置为具有连接到“退出时结束”事件的动作方法。但是,每当我在键盘上为textField命中“return”时,键盘就不会消失(这是我的代码):

// addCustomPage method that is called when button from original view is touched
- (IBAction) addCustomPage:(id)sender
{
    NSLog(@"Adding Custom Page");
    if (!self.customPageViewController)
    {
        self.customPageViewController =
        [[CustomPageViewController alloc] initWithNibName:@"CustomPageViewController" bundle: nil];

    }
    customPageViewController.modalPresentationStyle = UIModalPresentationFormSheet;
    [self presentModalViewController:customPageViewController animated:YES];
    // force keyboard to appear with loaded page on the first textField
    [customPageViewController.firstTextField becomeFirstResponder];

}

@interface CustomPageViewController : UIViewController

@property (strong, nonatomic) IBOutlet UITextField *firstTextField;
@property (strong, nonatomic) IBOutlet UITextField *secondTextField;
 - (IBAction)keyboardEndOnExit:(id)sender; // DID END ON EXIT EVENT
@end

//in CustomPageViewController.m
-(IBAction)keyboardEndOnExit:(id)sender
{
    [sender resignFirstResponder];
}

这是一个相当直接的问题,我通常使用基本视图和textFields解决使用此技术的键盘没有问题。我不确定是否使用此演示文稿格式的视图,或设置使事情变得不同。谢谢!

2 个答案:

答案 0 :(得分:0)

您已确认您实际上正在调用keyboardEndOnExit方法吗?

当用户采取特定操作时,您可以通过调用[yourTextView resignFirstResponder]来采取更直接的方法,例如按下键等。我仍然会检查是否使用断点或日志调用该方法

答案 1 :(得分:0)

看看this question。很确定它是由UIModalPresentationFormSheet引起的同样问题。