mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-06-16 05:55:20 +00:00
43 lines
1.2 KiB
Swift
43 lines
1.2 KiB
Swift
import Foundation
|
|
import UIKit
|
|
import AsyncDisplayKit
|
|
|
|
public final class AccessibilityAreaNode: ASDisplayNode {
|
|
public var activate: (() -> Bool)?
|
|
public var focused: (() -> Void)?
|
|
|
|
override public init() {
|
|
super.init()
|
|
|
|
self.isAccessibilityElement = true
|
|
}
|
|
|
|
override public func accessibilityActivate() -> Bool {
|
|
return self.activate?() ?? false
|
|
}
|
|
|
|
override public func hitTest(_ point: CGPoint, with event: UIEvent?) -> UIView? {
|
|
return nil
|
|
}
|
|
|
|
override public func accessibilityElementDidBecomeFocused() {
|
|
if let focused = self.focused {
|
|
focused()
|
|
} else {
|
|
var supernode = self.supernode
|
|
while true {
|
|
if let supernodeValue = supernode {
|
|
if let listItemNode = supernodeValue as? ListViewItemNode {
|
|
listItemNode.accessibilityElementDidBecomeFocused()
|
|
break
|
|
} else {
|
|
supernode = supernodeValue.supernode
|
|
}
|
|
} else {
|
|
break
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|