【发布时间】:2016-01-25 04:57:35
【问题描述】:
如何使用 UIResponder 聚焦激活的 UITextField?
代码如下:
// customTextField.swift
import UIKit
class customTextField: UITextField {
override func becomeFirstResponder() -> Bool {
if self.tag == 1 {
self.borderStyle = .Line
self.superview?.viewWithTag(2)?.resignFirstResponder()
self.superview?.viewWithTag(3)?.resignFirstResponder()
} else if self.tag == 2 {
self.borderStyle = .Line
self.superview?.viewWithTag(1)?.resignFirstResponder()
self.superview?.viewWithTag(3)?.resignFirstResponder()
} else {
self.borderStyle = .Line
self.superview?.viewWithTag(1)?.resignFirstResponder()
self.superview?.viewWithTag(2)?.resignFirstResponder()
}
return true
}
override func resignFirstResponder() -> Bool {
print("This is called")
self.borderStyle = .None
super.resignFirstResponder()
return true
}}
我想通过 View 的标签检查哪个文本字段是 firstResponder。然后如果其他 TextField 不应该被 resignFirstResponder 关注。
但是,当我在视图中触摸 textField 时,甚至不会调用 becomefirstResponder 代码块中的 resignFirstResponder。
【问题讨论】:
-
为何如此关注
resignFirstResponder?不是简单地成为第一响应者就辞去前响应者的职务吗? -
感谢您的建议。我如何推荐前响应者?
-
查看下面的答案:它响应 Calling resignFirstResponder doesn't work
标签: ios swift uitextfield uiresponder