gpt4 book ai didi

ios - 在 UIBarButtonItem 上以编程方式设置可访问性标识符

转载 作者:IT王子 更新时间:2023-10-29 07:59:26 25 4
gpt4 key购买 nike

可访问性标识符是开发人员为 GUI 对象生成的 ID,可用于自动化测试。

UIBarButtonItem 没有实现 UIAccessibilityIdentification。但是,我是否可以分配可访问性标识符?

最佳答案

您可以子类化 UIBarButtonItem 并在该子类中实现 UIAccessibilityIdentification 协议(protocol),比方说 BarButtonWithAccessibility

BarButtonWithAccessibility.h 中:

@interface BarButtonWithAccesibility : UIBarButtonItem<UIAccessibilityIdentification>

@property(nonatomic, copy) NSString *accessibilityIdentifier NS_AVAILABLE_IOS(5_0);

遵守此协议(protocol)的唯一(严格)要求是定义 accessibilityIdentifier 属性。

现在在你的 View Controller 中,假设在 viewDidLoad 中,你可以设置一个 UIToolbar 并添加你的子类 UIBarButtonItem:

#import "BarButtonWithAccesibility.h"

- (void)viewDidLoad{

[super viewDidLoad];

UIToolbar *toolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];

BarButtonWithAccesibility *myBarButton = [[BarButtonWithAccesibility alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(buttonPressed:)];
myBarButton.accessibilityIdentifier = @"I am a test button!";

toolbar.items = [[NSArray alloc] initWithObjects:myBarButton, nil];
[self.view addSubview:toolbar];
}

buttonPressed: 中,您可以验证您是否有权访问 accessibilityIdentifier:

- (void)buttonPressed:(id)sender{
if ([sender isKindOfClass:[BarButtonWithAccesibility class]]) {
BarButtonWithAccesibility *theButton = (BarButtonWithAccesibility *)sender;
NSLog(@"My accesibility identifier is: %@", theButton.accessibilityIdentifier);
}
}

希望这对您有所帮助。

关于ios - 在 UIBarButtonItem 上以编程方式设置可访问性标识符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20543804/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com