如何使用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
}}
Run Code Online (Sandbox Code Playgroud)
我想通过View的标签检查哪个textfield是firstResponder.然后,如果其他TextField应该由resignFirstResponder未聚焦.
但是,resignFirstResponder当我在视图中触摸textField时,甚至没有调用becomefirstResponder的代码块.
我正在使用调度组来获取数据字符串。这是一个代码,我不确定为什么要输入Unbalanced call to dispatch_group_leave()此代码。
var queue = DispatchQueue(label: "extractStringQueue", attributes: .concurrent)
queue.async {
let m_group = DispatchGroup()
let weeks = self.weekDataArray
for week in weeks {
for day in week.dayDataArray {
m_group.enter()
day.processStringData(dataName, completionHandler: { (data, response, error) in
if true {
// Process
m_group.leave()
}
})
}
}
m_group.notify(queue: queue, execute: {
// CompletionHandler
})
}
Run Code Online (Sandbox Code Playgroud)