如何在Cocoa中使用IKScannerDeviceView

Mat*_* S. 4 macos cocoa scanning ikscannerdeviceview

如何使用IKScannerDeviceView扫描应用程序内的文档?

我尝试添加一个IKScannerDeviceView进入我的观点通过IB及其委托设置为我的应用程序委托(它实现IKScannerDeviceViewDelegate),但是当我运行的应用程序,我得到一个视图使用按钮Show DetailsScan,只有Show Details被激活了,当我点击它没有什么发生.

我插入了扫描仪,我可以扫描图像捕获,但不能通过我的应用程序扫描.

有人有关于如何使用它的好教程吗?

Mat*_* S. 7

我终于弄明白了如何使用IKScannerDeviceView.

您的类必须实现以下委托:

IKScannerDeviceViewDelegate, ICScannerDeviceDelegate, ICDeviceBrowserDelegate
Run Code Online (Sandbox Code Playgroud)

并且您需要在窗口中安装IKScannerDeviceView,并将其委托设置为实现的类 IKScannerDeviceViewDelegate

要开始使用它,您必须创建ICDeviceBrowser如下:

    ICDeviceBrowser *mDeviceBrowser = [[ICDeviceBrowser alloc] init];
    mDeviceBrowser.delegate = self;
    mDeviceBrowser.browsedDeviceTypeMask = ICDeviceLocationTypeMaskLocal|ICDeviceLocationTypeMaskRemote|ICDeviceTypeMaskScanner;
    [mDeviceBrowser start];
Run Code Online (Sandbox Code Playgroud)

然后以类似于下面的方式实现委托方法:

- (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];
}
Run Code Online (Sandbox Code Playgroud)

如果一切正常,您的IKScannerDeviceView将能够与您的扫描仪进行交互!