将可访问性标识符分配给 MKMapView 对象
Posted
技术标签:
【中文标题】将可访问性标识符分配给 MKMapView 对象【英文标题】:Assigning an accessibility identifier to an MKMapView object 【发布时间】:2016-06-13 16:25:02 【问题描述】:我正在尝试为我正在使用的应用程序配置快照,它已经在英文版中工作,但在本地化版本中,我不知道如何在 MKMapView 中为地图中的引脚分配可访问性标识符,有人知道怎么做吗?
谢谢。
【问题讨论】:
【参考方案1】:可访问性标识符是将应用程序语言与 Xcode UI 测试分开的好方法。标识符来自UIAccessibilityIdentification
,UIView
已经符合。但是,NSObject
和 MKAnnotation
都不符合协议。所以你必须自己设置一致性。
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 对象的主要内容,如果未能解决你的问题,请参考以下文章