gpt4 book ai didi

ios - 从 ModalViewController 返回后键盘没有出现

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:40:16 25 4
gpt4 key购买 nike

我有一个 UIViewController,然后使用这段代码我提供了一个用于输入密码的模态视图 Controller 。

[self performSegueWithIdentifier:@"SeguePassword" sender:self];

在 Storyboard中:

Storyboard转折标识符 = Segue 密码样式 = 模态过渡 = 默认动画 = 未选中

当我在具有以下代码的模式上单击“取消”时:

[self dismissViewControllerAnimated:NO completion:^{}];

现在当我回来时,键盘是隐藏的。我有代码来显示一个工具栏,该工具栏带有一个名为隐藏的按钮。我看到了,但没有看到键盘。

有没有人有任何想法或指示来解决这样的问题?它似乎是最近在转换 iOS 7 的更改后开始的。

我的解决方案:

我发现这个是因为在我出于挫败感点击警告框上的 but 几次后,我看到键盘方向错误。即,当应用程序仅在 iPhone 上为纵向时,横向键盘。

之前:

- (NSUInteger) supportedInterfaceOrientations {
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
return UIInterfaceOrientationLandscapeLeft | UIInterfaceOrientationLandscapeRight;
} else {
**return (UIInterfaceOrientationPortrait);**
}

之后:

- (NSUInteger) supportedInterfaceOrientations {
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
return UIInterfaceOrientationLandscapeLeft | UIInterfaceOrientationLandscapeRight;
} else {
**return (UIInterfaceOrientationMaskPortrait);**
}

我将 Portrait 更改为使用 Mask 整数,然后一切又开始工作了。

最佳答案

键盘仅在某些对象是 firstResponder 时可见。查看 UIResponder 类的文档。

如果您的模态视图 Controller 使用键盘(听起来确实如此),它会获得第一响应者状态,并且原始屏幕上的任何内容都会丢失。如果你想从模态视图 Controller 返回到相同的状态,一些对象具有输入焦点——即成为 firstResponder——并且键盘可见,你将必须编写代码来实现这一点。特别是,您的原始 View Controller 必须知道模态视图 Controller 何时终止,以便它可以使您的输入对象、textField 或 textView 或其他任何对象成为第一响应者并声明:

   [objectIWantToBeFirstResponder becomeFirstResponder];

现在你怎么知道模态视图 Controller 什么时候完成了?有几个明显的技巧。

如果你想使用 segue 那么模态视图 Controller 将不得不明确地让呈现 View Controller 知道它是终止。您可能希望在模态视图 Controller 并让呈现 View Controller 采用它。当模态视图 Controller 想要退出时,它首先告诉呈现 View Controller 。

因为你可能手动触发了转场您愿意在代码中呈现模态视图 Controller 。如果是这样的话您可以使用完成 block :

   ModalViewControllerClass *vc = [[ModalViewControllerClass alloc] init];
// whatever else you need to do to the vc
[self presentViewController:vc animated:YESorNO completion:^{
// This code gets executed when the presented view controller exits
[objectIWantToBeFirstResponder becomeFirstResponder];
}];

关于ios - 从 ModalViewController 返回后键盘没有出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21682185/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com