Как использовать IKScannerDeviceView в Какао
Как я могу использовать IKScannerDeviceView для сканирования документа внутри моего приложения?
Я попытался добавить IKScannerDeviceView в мое представление через IB и установить его делегат для моего делегата приложения (который реализует IKScannerDeviceViewDelegate), но когда я запускаю приложение, я получаю представление с помощью кнопок Show Details
а также Scan
, и только Show Details
включен, и когда я нажимаю, ничего не происходит.
У меня подключен сканер, и я могу сканировать через Image Capture, но не через свое приложение.
У кого-нибудь есть хороший учебник о том, как его использовать?
1 ответ
Я наконец смог выяснить, как использовать IKScannerDeviceView.
Ваш класс должен реализовывать следующие делегаты:
IKScannerDeviceViewDelegate, ICScannerDeviceDelegate, ICDeviceBrowserDelegate
и вам нужно иметь IKScannerDeviceView в вашем окне с его делегатом, установленным для класса, реализующего IKScannerDeviceViewDelegate
Чтобы начать использовать его, вы должны создать ICDeviceBrowser
вот так:
ICDeviceBrowser *mDeviceBrowser = [[ICDeviceBrowser alloc] init];
mDeviceBrowser.delegate = self;
mDeviceBrowser.browsedDeviceTypeMask = ICDeviceLocationTypeMaskLocal|ICDeviceLocationTypeMaskRemote|ICDeviceTypeMaskScanner;
[mDeviceBrowser start];
Затем реализуйте методы делегата способом, подобным этому:
- (void)scannerDeviceDidBecomeAvailable:(ICScannerDevice*)scanner;
{
[scanner requestOpenSession];
}
- (void)deviceBrowser:(ICDeviceBrowser*)browser didAddDevice:(ICDevice*)addedDevice moreComing:(BOOL)moreComing
{
if ( (addedDevice.type & ICDeviceTypeMaskScanner) == ICDeviceTypeScanner )
{
[scannerView setScannerDevice:(ICScannerDevice*)addedDevice];
}
}
-(void)didRemoveDevice:(ICDevice*)removedDevice
{
[removedDevice requestCloseSession];
}
Тогда, если все пойдет хорошо, ваш IKScannerDeviceView сможет взаимодействовать с вашим сканером!