可能重复:
iPad:检测是否存在外部键盘
我一直在参考库中挖掘,似乎无法在这里找到答案.
我假设有一些API,我可以查询,以查明是否正在使用外部硬件键盘.
更新
我刚试过EAAccessoryManager.connectedAccessoriesExternalAccessory.framework.这是不行,它在启用硬件键盘时返回一个空数组.
我认为你必须使用以下代码 -
- (void)viewDidLoad {
UIView* _noExternalAccessoriesPosterView = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
[_noExternalAccessoriesPosterView setBackgroundColor:[UIColor whiteColor]];
_noExternalAccessoriesLabelView = [[UILabel alloc] initWithFrame:CGRectMake(60, 170, 240, 50)];
[_noExternalAccessoriesLabelView setText:@"No Accessories Connected"];
[_noExternalAccessoriesPosterView addSubview:_noExternalAccessoriesLabelView];
[[self view] addSubview:_noExternalAccessoriesPosterView];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(_accessoryDidConnect:) name:EAAccessoryDidConnectNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(_accessoryDidDisconnect:) name:EAAccessoryDidDisconnectNotification object:nil];
[[EAAccessoryManager sharedAccessoryManager] registerForLocalNotifications];
_eaSessionController = [EADSessionController sharedController];
_accessoryList = [[NSMutableArray alloc] initWithArray:[[EAAccessoryManager sharedAccessoryManager] connectedAccessories]];
[self setTitle:@"Accessories"];
if ([_accessoryList count] == 0) {
[_noExternalAccessoriesPosterView setHidden:NO];
} else {
[_noExternalAccessoriesPosterView setHidden:YES];
}
}
- (void)_accessoryDidConnect:(NSNotification *)notification {
EAAccessory *connectedAccessory = [[notification userInfo] objectForKey:EAAccessoryKey];
[_accessoryList addObject:connectedAccessory];
if ([_accessoryList count] == 0) {
[_noExternalAccessoriesPosterView setHidden:NO];
} else {
[_noExternalAccessoriesPosterView setHidden:YES];
}
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:([_accessoryList count] - 1) inSection:0];
[[self tableView] insertRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationLeft];
}
Run Code Online (Sandbox Code Playgroud)
希望这对您有用,并记住您必须使用ExternalAccessory此代码的框架。
| 归档时间: |
|
| 查看次数: |
2206 次 |
| 最近记录: |