session-ios/SignalUtilitiesKit/Utilities/UIAlertController+OWS.swift

36 lines
1015 B
Swift

// Copyright (c) 2019 Open Whisper Systems. All rights reserved.
import Foundation
import SignalCoreKit
extension UIAlertController {
@objc
public func applyAccessibilityIdentifiers() {
for action in actions {
guard let view = action.value(forKey: "__representer") as? UIView else {
owsFailDebug("Missing representer.")
continue
}
view.accessibilityIdentifier = action.accessibilityIdentifier
}
}
}
// MARK: -
extension UIAlertAction {
private struct AssociatedKeys {
static var AccessibilityIdentifier = "ows_accessibilityIdentifier"
}
@objc
public var accessibilityIdentifier: String? {
get {
return objc_getAssociatedObject(self, &AssociatedKeys.AccessibilityIdentifier) as? String
}
set {
objc_setAssociatedObject(self, &AssociatedKeys.AccessibilityIdentifier, newValue, objc_AssociationPolicy.OBJC_ASSOCIATION_RETAIN)
}
}
}