将可访问性标识符分配给 MKMapView 对象

Posted

技术标签:

【中文标题】将可访问性标识符分配给 MKMapView 对象【英文标题】:Assigning an accessibility identifier to an MKMapView object 【发布时间】:2016-06-13 16:25:02 【问题描述】:

我正在尝试为我正在使用的应用程序配置快照,它已经在英文版中工作,但在本地化版本中,我不知道如何在 MKMapView 中为地图中的引脚分配可访问性标识符,有人知道怎么做吗?

谢谢。

【问题讨论】:

【参考方案1】:

可访问性标识符是将应用程序语言与 Xcode UI 测试分开的好方法。标识符来自UIAccessibilityIdentificationUIView 已经符合。但是,NSObjectMKAnnotation 都不符合协议。所以你必须自己设置一致性。

class Annotation: NSObject, MKAnnotation, UIAccessibilityIdentification 
    let coordinate: CLLocationCoordinate2D
    let title: String?
    var accessibilityIdentifier: String?

    init(title: String?, coordinate: CLLocationCoordinate2D) 
        self.title = title
        self.coordinate = coordinate
    


let coordinate = CLLocationCoordinate2DMake(40.703490, -73.987770)
let annotation = Annotation(title: "BeerMenus HQ", coordinate: coordinate)
annotation.accessibilityIdentifier = "Custom Identifier"
let mapView = MKMapView()
mapView.addAnnotation(annotation)

然后在测试中你可以通过otherElements引用注解。

let app = XCUIApplication()
let annotation = app.maps.element.otherElements["Custom Identifier"]
annotation.tap()

【讨论】:

以上是关于将可访问性标识符分配给 MKMapView 对象的主要内容,如果未能解决你的问题,请参考以下文章

Flutter:如何将可访问性焦点集中到自定义应用栏

Xamarin iOS - 我们如何以编程方式将可访问性焦点设置为按钮

如何将可分配数组传递给 Fortran 中的子例程

是否可以为 UILabel 分配可访问性操作?

使用可访问性标识符访问标签文本

通过单元格中的可访问性标识符访问 UIButton