first cut with just inline replace

Signed-off-by: Matt Bruce <matt.bruce@verizon.com>
This commit is contained in:
Matt Bruce 2024-06-20 10:11:41 -05:00
parent 2700c39632
commit d013f07db3
10 changed files with 937 additions and 101 deletions

View File

@ -47,14 +47,10 @@ open class Control: UIControl, ViewProtocol, UserInfoable, Clickable {
//--------------------------------------------------
open var shouldUpdateView: Bool = true
open var shouldUpdateAccessibility: Bool = true
open var userInfo = [String: Primitive]()
open var surface: Surface = .light { didSet { setNeedsUpdate() } }
open var accessibilityAction: ((Control) -> Void)?
/// Whether the Control is selected or not.
open override var isSelected: Bool { didSet { setNeedsUpdate() } }
@ -123,22 +119,138 @@ open class Control: UIControl, ViewProtocol, UserInfoable, Clickable {
//--------------------------------------------------
// MARK: - Overrides
//--------------------------------------------------
/// Implement accessibilityActivate on an element in order to handle the default action.
/// - Returns: Based on whether the userInteraction is enabled.
open override func accessibilityActivate() -> Bool {
// Hold state in case User wanted isAnimated to remain off.
guard isEnabled, isUserInteractionEnabled else { return false }
if let accessibilityAction {
accessibilityAction(self)
}
sendActions(for: .touchUpInside)
return true
}
open override func layoutSubviews() {
super.layoutSubviews()
setNeedsUpdate()
}
//--------------------------------------------------
// MARK: - Accessibility
//--------------------------------------------------
open var shouldUpdateAccessibility: Bool = true
open var accessibilityAction: ((Control) -> Void)?
private var _isAccessibilityElement: Bool = false
open override var isAccessibilityElement: Bool {
get {
var block: AXBoolReturnBlock?
// if #available(iOS 17, *) {
// block = isAccessibilityElementBlock
// }
if block == nil {
block = bridge_isAccessibilityElementBlock
}
if let block {
return block()
} else {
return _isAccessibilityElement
}
}
set {
_isAccessibilityElement = newValue
}
}
private var _accessibilityLabel: String?
open override var accessibilityLabel: String? {
get {
var block: AXStringReturnBlock?
// if #available(iOS 17, *) {
// block = accessibilityLabelBlock
// }
if block == nil {
block = bridge_accessibilityLabelBlock
}
if let block {
return block()
} else {
return _accessibilityLabel
}
}
set {
_accessibilityLabel = newValue
}
}
private var _accessibilityHint: String?
open override var accessibilityHint: String? {
get {
var block: AXStringReturnBlock?
// if #available(iOS 17, *) {
// block = accessibilityHintBlock
// }
if block == nil {
block = bridge_accessibilityHintBlock
}
if let block {
return block()
} else {
return _accessibilityHint
}
}
set {
_accessibilityHint = newValue
}
}
private var _accessibilityValue: String?
open override var accessibilityValue: String? {
get {
var block: AXStringReturnBlock?
// if #available(iOS 17, *) {
// block = accessibilityHintBlock
// }
if block == nil {
block = bridge_accessibilityValueBlock
}
if let block{
return block()
} else {
return _accessibilityValue
}
}
set {
_accessibilityValue = newValue
}
}
open override func accessibilityActivate() -> Bool {
guard isEnabled, isUserInteractionEnabled else { return false }
var value = true
// if #available(iOS 17, *) {
// if let block = accessibilityAction {
// block(self)
// } else if let block = accessibilityActivateBlock {
// value = block()
//
// } else if let block = bridge_accessibilityActivateBlock {
// value = block()
// }
//
// } else {
if let block = accessibilityAction {
block(self)
} else if let block = bridge_accessibilityActivateBlock {
value = block()
}
// }
sendActions(for: .touchUpInside)
return value
}
}

View File

@ -137,13 +137,33 @@ open class SelectorBase: Control, SelectorControlable {
open override func accessibilityActivate() -> Bool {
guard isEnabled, isUserInteractionEnabled else { return false }
guard isEnabled, isUserInteractionEnabled else { return false }
var value = true
// if #available(iOS 17, *) {
// if let block = accessibilityAction {
// block(self)
//
// } else if let block = accessibilityActivateBlock {
// value = block()
//
// } else if let block = bridge_accessibilityActivateBlock {
// value = block()
//
// } else {
// toggle()
// }
// } else {
if let block = accessibilityAction {
block(self)
} else if let block = bridge_accessibilityActivateBlock {
value = block()
if let accessibilityAction {
accessibilityAction(self)
} else {
toggle()
}
return true
// }
return value
}
}

View File

@ -377,13 +377,32 @@ open class SelectorItemBase<Selector: SelectorBase>: Control, Errorable, Changea
open override func accessibilityActivate() -> Bool {
guard isEnabled, isUserInteractionEnabled else { return false }
var value = true
// if #available(iOS 17, *) {
// if let block = accessibilityAction {
// block(self)
//
// } else if let block = accessibilityActivateBlock {
// value = block()
//
// } else if let block = bridge_accessibilityActivateBlock {
// value = block()
//
// } else {
// toggle()
// }
// } else {
if let block = accessibilityAction {
block(self)
} else if let block = bridge_accessibilityActivateBlock {
value = block()
if let accessibilityAction {
accessibilityAction(self)
} else {
toggle()
}
return true
// }
return value
}
}

View File

@ -46,8 +46,6 @@ open class View: UIView, ViewProtocol, UserInfoable {
//--------------------------------------------------
open var shouldUpdateView: Bool = true
open var shouldUpdateAccessibility: Bool = true
/// Dictionary for keeping information for this Control use only Primitives.
open var userInfo = [String: Primitive]()
@ -55,8 +53,6 @@ open class View: UIView, ViewProtocol, UserInfoable {
open var isEnabled: Bool = true { didSet { setNeedsUpdate() } }
open var accessibilityAction: ((View) -> Void)?
//--------------------------------------------------
// MARK: - Lifecycle
//--------------------------------------------------
@ -90,17 +86,143 @@ open class View: UIView, ViewProtocol, UserInfoable {
isEnabled = true
}
open override func accessibilityActivate() -> Bool {
guard isEnabled, isUserInteractionEnabled else { return false }
if let accessibilityAction {
accessibilityAction(self)
}
return true
}
open override func layoutSubviews() {
super.layoutSubviews()
setNeedsUpdate()
}
//--------------------------------------------------
// MARK: - Accessibility
//--------------------------------------------------
open var shouldUpdateAccessibility: Bool = true
open var accessibilityAction: ((View) -> Void)?
private var _isAccessibilityElement: Bool = false
open override var isAccessibilityElement: Bool {
get {
var block: AXBoolReturnBlock?
// if #available(iOS 17, *) {
// block = isAccessibilityElementBlock
// }
if block == nil {
block = bridge_isAccessibilityElementBlock
}
if let block {
return block()
} else {
return _isAccessibilityElement
}
}
set {
_isAccessibilityElement = newValue
}
}
private var _accessibilityLabel: String?
open override var accessibilityLabel: String? {
get {
var block: AXStringReturnBlock?
// if #available(iOS 17, *) {
// block = accessibilityLabelBlock
// }
//
if block == nil {
block = bridge_accessibilityLabelBlock
}
if let block {
return block()
} else {
return _accessibilityLabel
}
}
set {
_accessibilityLabel = newValue
}
}
private var _accessibilityHint: String?
open override var accessibilityHint: String? {
get {
var block: AXStringReturnBlock?
// if #available(iOS 17, *) {
// block = accessibilityHintBlock
// }
if block == nil {
block = bridge_accessibilityHintBlock
}
if let block {
return block()
} else {
return _accessibilityHint
}
}
set {
_accessibilityHint = newValue
}
}
private var _accessibilityValue: String?
open override var accessibilityValue: String? {
get {
var block: AXStringReturnBlock?
// if #available(iOS 17, *) {
// block = accessibilityHintBlock
// }
if block == nil {
block = bridge_accessibilityValueBlock
}
if let block{
return block()
} else {
return _accessibilityValue
}
}
set {
_accessibilityValue = newValue
}
}
open override func accessibilityActivate() -> Bool {
guard isEnabled, isUserInteractionEnabled else { return false }
// if #available(iOS 17, *) {
// if let block = accessibilityAction {
// block(self)
// return true
// } else if let block = accessibilityActivateBlock {
// return block()
//
// } else if let block = bridge_accessibilityActivateBlock {
// return block()
//
// } else {
// return true
//
// }
//
// } else {
if let block = accessibilityAction {
block(self)
return true
} else if let block = bridge_accessibilityActivateBlock {
return block()
} else {
return true
}
// }
}
}

View File

@ -10,10 +10,10 @@ import UIKit
/// Custom UIAccessibilityElement that allows you to set the default action used in accessibilityActivate.
public class AccessibilityActionElement: UIAccessibilityElement {
var action: (() -> Void)?
public var accessibilityAction: AXVoidReturnBlock?
public override func accessibilityActivate() -> Bool {
action?()
accessibilityAction?()
return true
}
}

View File

@ -51,8 +51,6 @@ open class ButtonBase: UIButton, ViewProtocol, UserInfoable, Clickable {
/// Key of whether or not updateView() is called in setNeedsUpdate()
open var shouldUpdateView: Bool = true
open var shouldUpdateAccessibility: Bool = true
open var surface: Surface = .light { didSet { setNeedsUpdate() } }
/// Text that will be used in the titleLabel.
@ -78,8 +76,6 @@ open class ButtonBase: UIButton, ViewProtocol, UserInfoable, Clickable {
/// Whether the Button should handle the isHighlighted state.
open var shouldHighlight: Bool { isHighlighting == false }
open var accessibilityAction: ((ButtonBase) -> Void)?
/// Whether the Control is highlighted or not.
open override var isHighlighted: Bool {
didSet {
@ -144,15 +140,6 @@ open class ButtonBase: UIButton, ViewProtocol, UserInfoable, Clickable {
setNeedsUpdate()
}
open override func accessibilityActivate() -> Bool {
guard isEnabled, isUserInteractionEnabled else { return false }
if let accessibilityAction {
accessibilityAction(self)
}
sendActions(for: .touchUpInside)
return true
}
//--------------------------------------------------
// MARK: - Private Methods
//--------------------------------------------------
@ -185,6 +172,135 @@ open class ButtonBase: UIButton, ViewProtocol, UserInfoable, Clickable {
}
}
//--------------------------------------------------
// MARK: - Accessibility
//--------------------------------------------------
open var shouldUpdateAccessibility: Bool = true
open var accessibilityAction: ((ButtonBase) -> Void)?
private var _isAccessibilityElement: Bool = false
open override var isAccessibilityElement: Bool {
get {
var block: AXBoolReturnBlock?
// if #available(iOS 17, *) {
// block = isAccessibilityElementBlock
// }
if block == nil {
block = bridge_isAccessibilityElementBlock
}
if let block {
return block()
} else {
return _isAccessibilityElement
}
}
set {
_isAccessibilityElement = newValue
}
}
private var _accessibilityLabel: String?
open override var accessibilityLabel: String? {
get {
var block: AXStringReturnBlock?
// if #available(iOS 17, *) {
// block = accessibilityLabelBlock
// }
if block == nil {
block = bridge_accessibilityLabelBlock
}
if let block {
return block()
} else {
return _accessibilityLabel
}
}
set {
_accessibilityLabel = newValue
}
}
private var _accessibilityHint: String?
open override var accessibilityHint: String? {
get {
var block: AXStringReturnBlock?
// if #available(iOS 17, *) {
// block = accessibilityHintBlock
// }
if block == nil {
block = bridge_accessibilityHintBlock
}
if let block {
return block()
} else {
return _accessibilityHint
}
}
set {
_accessibilityHint = newValue
}
}
private var _accessibilityValue: String?
open override var accessibilityValue: String? {
get {
var block: AXStringReturnBlock?
// if #available(iOS 17, *) {
// block = accessibilityHintBlock
// }
if block == nil {
block = bridge_accessibilityValueBlock
}
if let block{
return block()
} else {
return _accessibilityValue
}
}
set {
_accessibilityValue = newValue
}
}
open override func accessibilityActivate() -> Bool {
guard isEnabled, isUserInteractionEnabled else { return false }
var value = true
// if #available(iOS 17, *) {
// if let block = accessibilityAction {
// block(self)
// } else if let block = accessibilityActivateBlock {
// value = block()
//
// } else if let block = bridge_accessibilityActivateBlock {
// value = block()
// }
//
// } else {
if let block = accessibilityAction {
block(self)
} else if let block = bridge_accessibilityActivateBlock {
value = block()
}
// }
sendActions(for: .touchUpInside)
return value
}
}
// MARK: AppleGuidelinesTouchable

View File

@ -108,8 +108,6 @@ open class Label: UILabel, ViewProtocol, UserInfoable {
/// Key of whether or not updateView() is called in setNeedsUpdate()
open var shouldUpdateView: Bool = true
open var shouldUpdateAccessibility: Bool = true
/// Will determine if a scaled font should be used for the font.
open var useScaledFont: Bool = false { didSet { setNeedsUpdate() }}
@ -132,8 +130,6 @@ open class Label: UILabel, ViewProtocol, UserInfoable {
/// Line break mode for the label, default is set to word wrapping.
open override var lineBreakMode: NSLineBreakMode { didSet { setNeedsUpdate() }}
open var accessibilityAction: ((Label) -> Void)?
/// Text that will be used in the label.
private var _text: String!
override open var text: String! {
@ -366,7 +362,7 @@ open class Label: UILabel, ViewProtocol, UserInfoable {
let labelAction = LabelAction(range: actionable.range, action: actionable.action)
// set the action of the accessibilityElement
customAccessibilityAction?.action = { [weak self] in
customAccessibilityAction?.accessibilityAction = { [weak self] in
guard let self, isEnabled else { return }
labelAction.performAction()
}
@ -456,10 +452,139 @@ open class Label: UILabel, ViewProtocol, UserInfoable {
return element
}
//--------------------------------------------------
// MARK: - Accessibility
//--------------------------------------------------
open var shouldUpdateAccessibility: Bool = true
open var accessibilityAction: ((Label) -> Void)?
private var _isAccessibilityElement: Bool = false
open override var isAccessibilityElement: Bool {
get {
var block: AXBoolReturnBlock?
// if #available(iOS 17, *) {
// block = isAccessibilityElementBlock
// }
if block == nil {
block = bridge_isAccessibilityElementBlock
}
if let block {
return block()
} else {
return _isAccessibilityElement
}
}
set {
_isAccessibilityElement = newValue
}
}
private var _accessibilityLabel: String?
open override var accessibilityLabel: String? {
get {
var block: AXStringReturnBlock?
// if #available(iOS 17, *) {
// block = accessibilityLabelBlock
// }
if block == nil {
block = bridge_accessibilityLabelBlock
}
if let block {
return block()
} else {
return _accessibilityLabel
}
}
set {
_accessibilityLabel = newValue
}
}
private var _accessibilityHint: String?
open override var accessibilityHint: String? {
get {
var block: AXStringReturnBlock?
// if #available(iOS 17, *) {
// block = accessibilityHintBlock
// }
if block == nil {
block = bridge_accessibilityHintBlock
}
if let block {
return block()
} else {
return _accessibilityHint
}
}
set {
_accessibilityHint = newValue
}
}
private var _accessibilityValue: String?
open override var accessibilityValue: String? {
get {
var block: AXStringReturnBlock?
// if #available(iOS 17, *) {
// block = accessibilityHintBlock
// }
if block == nil {
block = bridge_accessibilityValueBlock
}
if let block{
return block()
} else {
return _accessibilityValue
}
}
set {
_accessibilityValue = newValue
}
}
open override func accessibilityActivate() -> Bool {
guard let accessibilityAction, isEnabled, isUserInteractionEnabled else { return false }
accessibilityAction(self)
guard isEnabled, isUserInteractionEnabled else { return false }
// if #available(iOS 17, *) {
// if let block = accessibilityAction {
// block(self)
// return true
// } else if let block = accessibilityActivateBlock {
// return block()
//
// } else if let block = bridge_accessibilityActivateBlock {
// return block()
//
// } else {
// return true
//
// }
//
// } else {
if let block = accessibilityAction {
block(self)
return true
} else if let block = bridge_accessibilityActivateBlock {
return block()
} else {
return true
}
// }
}
}

View File

@ -47,6 +47,9 @@ open class TextField: UITextField, ViewProtocol, Errorable {
//--------------------------------------------------
// MARK: - Properties
//--------------------------------------------------
/// Key of whether or not updateView() is called in setNeedsUpdate()
open var shouldUpdateView: Bool = true
private var formatLabel = Label().with {
$0.tag = 999
$0.textColorConfiguration = ViewColorConfiguration().with {
@ -64,9 +67,6 @@ open class TextField: UITextField, ViewProtocol, Errorable {
/// Will determine if a scaled font should be used for the titleLabel font.
open var useScaledFont: Bool = false { didSet { setNeedsUpdate() } }
/// Key of whether or not updateView() is called in setNeedsUpdate()
open var shouldUpdateView: Bool = true
open var shouldUpdateAccessibility: Bool = true
open var surface: Surface = .light { didSet { setNeedsUpdate() } }
@ -77,8 +77,6 @@ open class TextField: UITextField, ViewProtocol, Errorable {
open var lineBreakMode: NSLineBreakMode = .byClipping { didSet { setNeedsUpdate() } }
open var accessibilityAction: ((TextField) -> Void)?
open override var isEnabled: Bool { didSet { setNeedsUpdate() } }
open var textColorConfiguration: AnyColorable = ViewColorConfiguration().with {
@ -213,17 +211,6 @@ open class TextField: UITextField, ViewProtocol, Errorable {
return success
}
open override func accessibilityActivate() -> Bool {
guard isEnabled, isUserInteractionEnabled else { return false }
if let accessibilityAction {
accessibilityAction(self)
return true
} else {
return super.accessibilityActivate()
}
}
//--------------------------------------------------
// MARK: - Private Methods
//--------------------------------------------------
@ -245,6 +232,138 @@ open class TextField: UITextField, ViewProtocol, Errorable {
}
}
//--------------------------------------------------
// MARK: - Accessibility
//--------------------------------------------------
open var accessibilityAction: ((TextField) -> Void)?
private var _isAccessibilityElement: Bool = false
open override var isAccessibilityElement: Bool {
get {
var block: AXBoolReturnBlock?
// if #available(iOS 17, *) {
// block = isAccessibilityElementBlock
// }
if block == nil {
block = bridge_isAccessibilityElementBlock
}
if let block {
return block()
} else {
return _isAccessibilityElement
}
}
set {
_isAccessibilityElement = newValue
}
}
private var _accessibilityLabel: String?
open override var accessibilityLabel: String? {
get {
var block: AXStringReturnBlock?
// if #available(iOS 17, *) {
// block = accessibilityLabelBlock
// }
if block == nil {
block = bridge_accessibilityLabelBlock
}
if let block {
return block()
} else {
return _accessibilityLabel
}
}
set {
_accessibilityLabel = newValue
}
}
private var _accessibilityHint: String?
open override var accessibilityHint: String? {
get {
var block: AXStringReturnBlock?
// if #available(iOS 17, *) {
// block = accessibilityHintBlock
// }
if block == nil {
block = bridge_accessibilityHintBlock
}
if let block {
return block()
} else {
return _accessibilityHint
}
}
set {
_accessibilityHint = newValue
}
}
private var _accessibilityValue: String?
open override var accessibilityValue: String? {
get {
var block: AXStringReturnBlock?
// if #available(iOS 17, *) {
// block = accessibilityHintBlock
// }
if block == nil {
block = bridge_accessibilityValueBlock
}
if let block{
return block()
} else {
return _accessibilityValue
}
}
set {
_accessibilityValue = newValue
}
}
open override func accessibilityActivate() -> Bool {
guard isEnabled, isUserInteractionEnabled else { return false }
// if #available(iOS 17, *) {
// if let block = accessibilityAction {
// block(self)
// return true
// } else if let block = accessibilityActivateBlock {
// return block()
//
// } else if let block = bridge_accessibilityActivateBlock {
// return block()
//
// } else {
// return super.accessibilityActivate()
//
// }
//
// } else {
if let block = accessibilityAction {
block(self)
return true
} else if let block = bridge_accessibilityActivateBlock {
return block()
} else {
return super.accessibilityActivate()
}
// }
}
}
extension UITextField {

View File

@ -48,8 +48,6 @@ open class TextView: UITextView, ViewProtocol, Errorable {
/// Key of whether or not updateView() is called in setNeedsUpdate()
open var shouldUpdateView: Bool = true
open var shouldUpdateAccessibility: Bool = true
open var surface: Surface = .light { didSet { setNeedsUpdate() } }
/// Array of LabelAttributeModel objects used in rendering the text.
@ -68,8 +66,6 @@ open class TextView: UITextView, ViewProtocol, Errorable {
$0.setSurfaceColors(VDSColor.elementsPrimaryOnlight, VDSColor.elementsPrimaryOndark, forDisabled: false)
}.eraseToAnyColorable(){ didSet { setNeedsUpdate() }}
open var accessibilityAction: ((TextView) -> Void)?
open var showError: Bool = false { didSet { setNeedsUpdate() } }
open var errorText: String? { didSet { setNeedsUpdate() } }
@ -149,15 +145,139 @@ open class TextView: UITextView, ViewProtocol, Errorable {
setNeedsUpdate()
}
//--------------------------------------------------
// MARK: - Accessibility
//--------------------------------------------------
open var shouldUpdateAccessibility: Bool = true
open var accessibilityAction: ((TextView) -> Void)?
private var _isAccessibilityElement: Bool = false
open override var isAccessibilityElement: Bool {
get {
var block: AXBoolReturnBlock?
// if #available(iOS 17, *) {
// block = isAccessibilityElementBlock
// }
if block == nil {
block = bridge_isAccessibilityElementBlock
}
if let block {
return block()
} else {
return _isAccessibilityElement
}
}
set {
_isAccessibilityElement = newValue
}
}
private var _accessibilityLabel: String?
open override var accessibilityLabel: String? {
get {
var block: AXStringReturnBlock?
// if #available(iOS 17, *) {
// block = accessibilityLabelBlock
// }
if block == nil {
block = bridge_accessibilityLabelBlock
}
if let block {
return block()
} else {
return _accessibilityLabel
}
}
set {
_accessibilityLabel = newValue
}
}
private var _accessibilityHint: String?
open override var accessibilityHint: String? {
get {
var block: AXStringReturnBlock?
// if #available(iOS 17, *) {
// block = accessibilityHintBlock
// }
if block == nil {
block = bridge_accessibilityHintBlock
}
if let block {
return block()
} else {
return _accessibilityHint
}
}
set {
_accessibilityHint = newValue
}
}
private var _accessibilityValue: String?
open override var accessibilityValue: String? {
get {
var block: AXStringReturnBlock?
// if #available(iOS 17, *) {
// block = accessibilityHintBlock
// }
if block == nil {
block = bridge_accessibilityValueBlock
}
if let block{
return block()
} else {
return _accessibilityValue
}
}
set {
_accessibilityValue = newValue
}
}
open override func accessibilityActivate() -> Bool {
guard isEnabled, isUserInteractionEnabled else { return false }
if let accessibilityAction {
accessibilityAction(self)
// if #available(iOS 17, *) {
// if let block = accessibilityAction {
// block(self)
// return true
// } else if let block = accessibilityActivateBlock {
// return block()
//
// } else if let block = bridge_accessibilityActivateBlock {
// return block()
//
// } else {
// return super.accessibilityActivate()
//
// }
//
// } else {
if let block = accessibilityAction {
block(self)
return true
} else if let block = bridge_accessibilityActivateBlock {
return block()
} else {
return super.accessibilityActivate()
}
// }
}
//--------------------------------------------------

View File

@ -70,3 +70,86 @@ extension ViewProtocol where Self: UIControl {
}).store(in: &subscribers)
}
}
public protocol AccessibilityUpdatable {
// Basic accessibility
var bridge_isAccessibilityElementBlock: AXBoolReturnBlock? { get set }
var bridge_accessibilityLabelBlock: AXStringReturnBlock? { get set }
var bridge_accessibilityValueBlock: AXStringReturnBlock? { get set }
var bridge_accessibilityHintBlock: AXStringReturnBlock? { get set }
var bridge_accessibilityActivateBlock: AXBoolReturnBlock? { get set }
}
extension NSObject: AccessibilityUpdatable {
static var isAccessibilityElementBlockKey: UInt8 = 0
static var activateBlockKey: UInt8 = 1
static var valueBlockKey: UInt8 = 2
static var hintBlockKey: UInt8 = 3
static var labelBlockKey: UInt8 = 4
public var bridge_isAccessibilityElementBlock: AXBoolReturnBlock? {
get {
return objc_getAssociatedObject(self, &NSObject.isAccessibilityElementBlockKey) as? AXBoolReturnBlock
}
set {
objc_setAssociatedObject(self, &NSObject.isAccessibilityElementBlockKey, newValue, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
// if #available(iOS 17, *) {
// self.isAccessibilityElementBlock = newValue
// }
}
}
public var bridge_accessibilityActivateBlock: AXBoolReturnBlock? {
get {
return objc_getAssociatedObject(self, &NSObject.activateBlockKey) as? AXBoolReturnBlock
}
set {
objc_setAssociatedObject(self, &NSObject.activateBlockKey, newValue, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
// if #available(iOS 17, *) {
// self.accessibilityActivateBlock = newValue
// }
}
}
public var bridge_accessibilityValueBlock: AXStringReturnBlock? {
get {
return objc_getAssociatedObject(self, &NSObject.valueBlockKey) as? AXStringReturnBlock
}
set {
objc_setAssociatedObject(self, &NSObject.valueBlockKey, newValue, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
// if #available(iOS 17, *) {
// self.accessibilityValueBlock = newValue
// }
}
}
public var bridge_accessibilityHintBlock: AXStringReturnBlock? {
get {
return objc_getAssociatedObject(self, &NSObject.hintBlockKey) as? AXStringReturnBlock
}
set {
objc_setAssociatedObject(self, &NSObject.hintBlockKey, newValue, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
// if #available(iOS 17, *) {
// self.accessibilityHintBlock = newValue
// }
}
}
public var bridge_accessibilityLabelBlock: AXStringReturnBlock? {
get {
return objc_getAssociatedObject(self, &NSObject.labelBlockKey) as? AXStringReturnBlock
}
set {
objc_setAssociatedObject(self, &NSObject.labelBlockKey, newValue, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
// if #available(iOS 17, *) {
// self.accessibilityLabelBlock = newValue
// }
}
}
}