można podklasy UIBarButtonItem
i wdrożyć protokół UIAccessibilityIdentification
w tej podklasy, pozwala powiedzmy BarButtonWithAccesibility
.
W BarButtonWithAccesibility.h
:
@interface BarButtonWithAccesibility : UIBarButtonItem<UIAccessibilityIdentification>
@property(nonatomic, copy) NSString *accessibilityIdentifier NS_AVAILABLE_IOS(5_0);
Jedyny (surowe) wymóg, przylegający do tego protokołu definiuje właściwość accessibilityIdentifier
.
Teraz w kontrolerze widoku, powiedzmy w viewDidLoad
, można założyć UIToolbar i dodać podklasy 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];
}
I w buttonPressed:
można zweryfikować, że masz dostęp do accessibilityIdentifier
:
- (void)buttonPressed:(id)sender{
if ([sender isKindOfClass:[BarButtonWithAccesibility class]]) {
BarButtonWithAccesibility *theButton = (BarButtonWithAccesibility *)sender;
NSLog(@"My accesibility identifier is: %@", theButton.accessibilityIdentifier);
}
}
Mam nadzieję, że to pomoże.
dokładnie to, czego potrzebowałem, dzięki! – Chris
Cieszę się, że mogę pomóc! –
Wygląda na to, że iOS 8 naprawił problem, a 'accessibilityIdentifier' może teraz być również używany z' UIBarButtonItem'. – fabb