问题标签 [becomefirstresponder]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
iphone - 使文本字段再次成为第一响应者
我有一个 UItextField 对象,并将“退出时结束”链接到“textFieldDoneEditing”操作。在我按下键盘上的完成按钮后,为什么它会消失?
ios - 如何显示 UIView 的键盘
我有一个 UIView,我想在其中接收键盘输入。我试过了:
但它不起作用。
我可以通过隐藏 UITextField 并将按键转发到我的 UIView 来实现“肮脏”的解决方法 - 但是我的 UIView 如何直接接收键盘输入?
objective-c - UITextView 不会 resignFirstResponder 所以另一个可以成为FirstResponder
我的 UITextfields 的 inputAccessoryView 中有一个工具栏。如果点击“下一个”按钮,它会使我所有文本字段的有序集中的下一个文本字段成为第一响应者。效果很好。
但我无法让“以前的”文本字段成为FirstResponder。
我已经在控制台中进行了检查,并且文本字段确实调用了 textFieldShouldBeginEditing 并且我返回 YES,但它从不调用 textFieldDidBeginEditing,并且应该 resignFirstResponder 的文本字段从不调用 textFieldShouldEndEditing。
因此,文本字段正在获取成为成为FirstResponder 的消息,但没有。
最奇怪的是,如果我通过某些操作强制文本字段 resignFirstResponder,那么“以前的”文本字段会突然变成 FirstResponder。就像它被添加到响应者列表中一样,轮到它了……
objective-c - 从 textFieldDidEndEditing 调用 reloadData 后,针对 UITableView 的 indexPath 不正确
因此,我试图在管理电话号码时模拟标准 Apple 代码在联系人应用程序上的工作方式。具体来说,我正在努力从 tableview 中删除一行,如果它为空并且用户导航到任何其他行
我的问题是,由于 tableview 重新加载导致 UITextField 辞职其响应者,我需要为用户导航到的文本字段再次设置响应者
我有 UITextField 委托并且正在处理通常的textFieldShouldBeginEditing , textFieldDidBeginEditing , textFieldShouldEndEditing , textFieldDidEndEditing
为了处理该功能,我的代码在 内textFieldDidEndEditing
,因此我从 tableview 数组中删除数据,并且由于 tableview 有 2 个部分,我正在调用:
在textFieldDidBeginEditing
我保存正在编辑的 textField 的 indexPath 期间,使用:
然后,我使用以下代码将正确的行 textField 设置为第一响应者:
一切似乎都很好,直到接近处理结束时,突然textFieldDidBeginEditing
开始为 indexPath 返回第 0 行第 0 节(即使在检查标签值或包含的文本时返回文本字段的正确值)
以下是上述过程开始时的日志:
从日志的最后一部分可以看出,textFieldDidEndEditing
完成后,textFieldDidBeginEditing
调用但返回第 0 节和第 0 行(这些行始终保持显示和可见)
我既不明白为什么要调用它,也不明白为什么它没有返回正确的 indexPath。可以看出,该值的文本被返回(在这种情况下,输入值为 123),我已经用其他数据和其他行验证了这一点(对于文本字段的文本和标签)
也许我的 inside 设置becomeFirstReponsder
不textFieldDidEndEditing
正确,但如果这是真的,我不知道在哪里处理这个
希望有人对此有更好的理解可以帮助我,正如你所知道的,我已经经历了几个小时没有任何解决方案
谢谢伊兹
编辑 1: 在代码中,所有调用都是becomeFirstReponder
在textFieldDidEndEditing
完成之前。当您在完成后查看日志时cellForRowAtIndexPath
,它进入并存在文本字段 TWICE,一次是针对刚刚删除的行下方的行,然后当它为 indexPath 的部分/行返回 0 时再次存在?我不明白是什么事件序列导致这个帖子表重新加载方法触发
编辑 2:只是我,还是 在日志末尾之前没有 NO 似乎真的很奇怪?是不是我通过在 期间重新加载表格来搞砸内部流程?有没有更好的地方来做到这一点(即删除一行并重新加载表格视图以显示 UI 更新)?textfieldSHOULDbeginEditing
textFieldDidBeginEditing
textFieldDidEndEditing
ipad - 设置 MKMapView 的框架会导致 resignFirstResponder,但仅在 iPad 上的横向与拆分键盘
这有点奇怪,我不确定到底发生了什么。我正在使用具有自定义注释的 MKMapView。在该注释中,我有一个可编辑的文本字段。当用户点击该字段时,键盘会出现,我通过移动/缩小我的地图视图并重新居中注释来响应它。一切都很好,除了 iPad 在横向模式下使用拆分键盘。只有在这种情况下,当我更改地图视图的框架时,它会在我的文本字段上调用“resignFirstResponder”并开始在屏幕外设置键盘动画。当它被移出屏幕时,我的代码通过移动/扩展我的地图视图来填充空间来响应它。然后,我的文本字段再次收到消息becomeFirstResponder
。我检查了调用堆栈,这来自:[UIView(Hierarchy) deferredBecomeFirstResponder]
. 键盘重新启动,我再次响应,循环继续:上 -> 下 -> 上 -> 下 -> 上 -> 下.....不断。这resignFirstResponder
肯定来自设置我的地图视图的框架。如果我在我的文本字段上设置一个中断resignFirstResponder
并检查调用堆栈,则上一个调用是我设置地图视图框架。此外,如果我在关闭键盘时中断了响应键盘的代码,我会在设置地图视图框架后立即注意到堆栈上的这些调用:
我可以通过不调整地图视图的大小来解决这个问题。如果我不这样做,则循环永远不会启动。相反,如果我将地图视图放在容器视图中,clipToBounds = YES
在容器视图上设置并且地图视图上没有自动调整大小,我可以调整容器视图的大小并使地图视图保持相同的大小......问题是它解决方法。如果用户旋转 iPad,我需要更改地图视图的大小,但这将启动这个丑陋的循环。
有人知道发生了什么吗?
objective-c - 调用 becomeFirstResponder 后未调用 shouldChangeCharactersInRange 方法
嗨,我是 iOS 新手,
我在我的项目中使用了几个文本字段,所以我想使用becomeFirstResponder对任何一个文本字段进行编辑。它在xcode 3.2.5中运行良好,但在xcode 4.2.1中出现问题
在调用becomeFirstResponder后的xcode 4.2.1中,我无法编辑文本字段,它显示虚拟键盘我可以点击按键,但点击的按键未输入到文本字段中。
请帮帮我。
ios - 切换uitextf时停止键盘关闭
我正在使用一个带有一个部分和五个单元格的 uitableview,每个 tableCell 上有两个不同的 uitextfields。
我的问题是:当用户在第一个表格行的第一个文本字段上标签时,键盘出现,然后用户点击第二个文本字段。键盘DISMISS和SHOW。
那么当用户在文本字段上切换焦点时,如何保持键盘而不是 DISMISS 和 SHOW 呢?
谢谢。
第一次编辑: 很抱歉对此的回复晚了,这里显示的代码有点复杂。我不会在任何 textField 委托方法中放弃FirstResponder/becomeFirstResponder。您能否提出任何想法。感谢你的帮助。
第二次编辑: 对不起我的错误,我完全误解了我的问题。我会在一分钟内重新链接这里的新帖子。
第三次编辑: 这是我的新问题
uitextfield - 移动到 UITableView 中的下一个 textField
我有一个充满子类文本字段的 tableView。以下是我创建它们的方式:
当用户点击“下一步”按钮时,我不知道如何移动到下一个文本字段。通常我应该让下一个文本字段成为第一响应者,但是由于我所有的文本字段都具有相同的名称“myTextfield”,我不知道该怎么做。请帮忙!
iphone - 取消隐藏视图时 becomeFirstResponder 会减慢应用程序的速度
这是对这个问题的一种跟进:becomeFirstResponder 减慢应用程序的速度
我遇到了与该海报相同的问题,即调用 becomeFirstResponder 似乎会减慢我的应用程序的速度(它可能会挂起 1-2 秒)。然而,虽然他们在显示警报的同时调用它,但我只是试图取消隐藏隐藏视图并让它与某个字段一起显示为第一响应者。就像是:
dialogView 有一个层次结构,其中包含 dialogText(我试图设置为第一响应者的 UITextField)和其他一些项目。
这种缓慢仅在第一次执行此代码时出现,即我们第一次尝试打开此对话框时。在随后的尝试中,没有明显的缓慢(我认为这是因为 dialogText 在那时已经是第一响应者 - 我没有在任何地方使用 resignFirstResponder ?)。
编辑:这里有一些额外的上下文代码,但不确定它是否真的会更清楚。注意我现在正在动画这个对话框视图的取消隐藏,但是行为没有什么不同。我也已经将 becomeFirstResponder 调用移到完成块中(未反映在此处的代码中),这样至少对话框的出现不会延迟,但是在对话框出现和键盘出现之间仍然存在延迟。
objective-c - 自定义 UITableViewCell 中的多个 UITextField
我有一个 UITableView,它有 2 个不同的 customcell 定义。一个是单个 UITextField,另一个是 4 个 UITextField
userInteractionEnabled 手动设置为启用单元格级触摸导航,并且我在 didSelectRowAtIndexPath 中处理 UI 交互到相关单元格的第一响应者
当我只使用一个自定义单元格 (EditableCustomCell) 和一个 UITextField (editableTextField) 时,这一切都很好,但现在我有一个自定义单元格 (LatLonCustomCell) 和 4 个 UITextFields(度、分、秒、笛卡尔),我无法确定哪个字段有被触摸以设置 becomeFirstResponder
(目前我在调试期间默认使用第一个名为 degree 的文本字段)
}