0

我正在使用 MacOS 10.15 上的 Xcode 12.3 创建一个 MacOS 应用程序,包括在 Objective C 中的扫描仪访问。如果我将 ImageKit Scanner Device View 和 ImageKit Device Browser View 从 Library 拖到通过单击 MainMenu.xib 显示的设计窗口上,而不将它们放在应用程序窗口上,我可以通过 Ctrl- 使 Scanner Device 视图成为设备浏览器的委托 -从设备浏览器拖到扫描仪设备上。如果我然后剪切这两个对象并将它们粘贴到应用程序 NSView 中,则应用程序可以正常工作,但是会在加载时立即与默认扫描仪建立连接。

当我检查 BrowserView 的连接时,它在 Reference Outlets 部分显示它的代表是“扫描仪设备视图”。设备视图的连接显示“设备浏览器视图”的出口。

我想以编程方式与设备浏览器中选择的扫描仪建立连接,并添加了一个带有操作事件的按钮[_BrowserView setDelegate:_ScannerView];,其中 BrowserView 是设备浏览器的出口,而 ScannerView 是扫描仪设备的出口。

此行在设计视图中显示警告Sending 'IKScannerDeviceView *__weak' to parameter of incompatible type ,在连接检查器中删除浏览器视图的委托并通过单击激活按钮执行操作后,未建立与所选扫描仪的连接。

如何以编程方式复制当我从浏览器按住 ctrl 拖动到设备视图时发生的情况?

AppDelegate.h 文件包含

#import <Cocoa/Cocoa.h>
#import <Quartz/Quartz.h>

@interface AppDelegate : NSObject
<NSApplicationDelegate, IKScannerDeviceViewDelegate>
@property (weak) IBOutlet NSButton *ActivateButton;
@property (weak) IBOutlet NSView *ScannerWindow;
@property (weak) IBOutlet IKScannerDeviceView *ScannerView;
@property (weak) IBOutlet IKDeviceBrowserView *BrowserView;
@end

AppDelegate.m 文件包含:

#import "AppDelegate.h"

@interface AppDelegate ()

@property (strong) IBOutlet NSWindow *window;
@property (weak) IKScannerDeviceView* scanner;
@end

@implementation AppDelegate
- (IBAction)ActivateScanner:(id)sender {    
    [_BrowserView setDelegate:_ScannerView];
}
4

0 回答 0