- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我使用 AGWindowView
添加了一个模态框.在模态视图(使用 IB 构建)中,有一个文本字段。文本字段已连接到 socket 。
这行不通:
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
[self.placesTextField becomeFirstResponder];
}
对 becomeFirstResponder
的调用不起作用,键盘也没有显示。
这个有效:
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
[self.placesTextField performSelector:@selector(becomeFirstResponder) withObject:nil afterDelay:0];
}
但是,如果我使用 performSelector:withObject:afterDelay
手动发送消息,它会起作用。为什么直到运行时才确定此方法?
最佳答案
似乎在 iOS7 中, View /对象还没有附加到 View 层次结构/窗口中。因此通过对象调用方法失败。如果我们进行一些延迟并且它正在工作,则意味着此时对象已附加到窗口。
根据苹果公司的说法,
A responder object only becomes the first responder if the current responder can resign first-responder status (canResignFirstResponder) and the new responder can become first responder.
You may call this method to make a responder object such as a view the first responder. However, you should only call it on that view if it is part of a view hierarchy. If the view’s window property holds a UIWindow object, it has been installed in a view hierarchy; if it returns nil, the view is detached from any hierarchy.
有关详细信息,请参阅 UIResponder Class Reference .
关于ios - 为什么 becomeFirstResponder 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20208837/
这个问题在这里已经有了答案: Display keyboard without animation (7 个答案) 关闭 9 年前。 只是一个简单的问题,每次我调用 UITextField 的 Be
我目前正在尝试创建一个类似于 Apple Reminders 的待办事项应用。现在,当我通过单击 UIButton 添加新任务时,将创建一个包含 UITextfield 的新单元格并将其指定为第一响应
我有一个 UITextField,用户可以在其中输入他们的名字。当他们点击按钮时,我的应用程序会检查以确保他们确实输入了某些内容。如果他们没有,我会出现一个警告 View ,然后在下面我有这段代码:
我有以下 viewDidLoad 方法: - (void)viewDidLoad { NSLog(@"didLoad"); if (self.loginField.text.lengt
在将其 .hidden 属性设置为 NO 后,我将焦点转移到 UITextView。当我设置 [textView becomeFirstResponder] 时,textView 获得小打字光标,但键
我有一个 View Controller ,其 viewDidLoad 方法在其关联 View 中包含的文本字段(电子邮件)上调用 becomeFirstResponder: -(void) view
我有一个 View 支持复制并使用以下代码显示编辑菜单: if ([self becomeFirstResponder]) { // bring up edit menu. UIMen
我在每个 UITableViewRow 上都有两个 UITextFields,由于某种原因,当我在 UIKeyboard 上按下回车键时,一个特定的行两个 UITextFields 都不会响应(光标不
是否有一种标准方法可以确保键盘出现在屏幕上并且不会消失?我已将我的 textView 设置为第一响应者,以确保键盘显示,但我希望文本出现在 textView 中(让用户知道要输入什么字段),当我成为第
我想将我的 UITextfield 放在底部工具栏中,所以在 ViewWillAppear 上我写了以下代码: textBarcode.BecomeFirstResponder (); 但是 text
我的应用程序的一个目标是管理多个自定义输入 View (来自 nibs)以及常规系统键盘。一个或另一个将永远存在。 (在示例代码中,我只管理一个 Nib + 系统键盘)。 更换键盘时,我想保留您在系统
我在 UITableView 的第一个单元格中有 UITextField,每当它更改时,表格也会更改。问题是,当表更新时,该字段失去第一响应者状态,并且 becomeFirstResponder 不会
在我的应用中,用户可以输入他们的名字。 UITextField 被添加到 View 并调用 becomeFirstResponder。在 textFieldShouldReturn 方法中,调用 re
嗨。我用指纹写了一个代码。当指纹失败时,您可以点击“输入密码”,然后密码 textField 将 becomeFirstResponder()。我的问题在这里:当我点击那个按钮时,它执行 become
我有一个 UIAlertController,在我的应用程序上显示了一个 textField。选择了 textField(标记在其中闪烁)并且在 textField 上设置了 .becomeFirst
我正在使用带有自定义单元格的 UIColletion View ,其中包含 UITextField。正如我发现的那样,当 textField 成为第一响应者时,collectionView 会自动滚动
我有一个包含一个部分和许多行的分组 UITableViewController。每个 cell 包含两个元素:一个带有描述的 UILabel 和一个用于输入的 UITextField。一种形式,我会说
第一次调用 becomeFirstResponder 时,速度很慢。 Instruments 测量大约 160 毫秒......当它完成加载所有它必须加载的东西以便在屏幕上显示键盘时,键盘就会出现!杀
在我的程序中,我需要显示来自文本字段的文本,它在工具栏中不是用户交互的,它是键盘的附属 View 。当我按下按钮时,这部分工作。然后,如果设备旋转,我需要隐藏键盘。这部分也可以正常工作。但是当我回到
我有一个 UIScrollView,其中有一个 UITextField,所以我所做的是在第三个文本字段(密码)上向下滚动 UIScrollView 的偏移量: #pragma mark UITextF
我是一名优秀的程序员,十分优秀!