1

我正在使用 Monobjc 和 Mono 开发一个用户可以放大图像的应用程序。第一个图像显示得很好。但是当用户导航到下一个图像时,它会显示为白色背景的空白。随后的图像也显示为空白。现在,当在 10.6 和 10.7 上执行相同的应用程序时,图像会完美显示。

我没有编写用于设置的其他代码IKImageView。它是在 InterfaceBuilder 中设置的,但仅此而已。我的代码是 -

//ImgeData is the binary format of the image.
NSData data = new NSData(ImageData);
NSBitmapImageRep imageRep = new NSBitmapImageRep(data);
NSImage image = new NSImage(new NSSize(imageRep.PixelsWide, imageRep.PixelsHigh));
image.AddRepresentation(imageRep);
image.Retain();
NSData imgDat = image.TIFFRepresentation;
if(imgDat != null)
{
    var imgSrc = CGImageSource.CreateWithData(imgDat, null);
    var imgRef = CGImageSource.CreateImageAtIndex(imgSrc, 0, null);
    if (_ikImageView == null)
    {
        return;
    }
    _ikImageView.SetImageImageProperties(imgRef,null);
    CGImage.Release(imgRef);
}

更新 - 我意识到我可以看到空白区域的手。有没有可能图像被隐藏了?

更多更新 - 我的窗口包含 NSView,而 NSView 又包含 IKImageView。现在整个 IKImageView 被替换为白色补丁。但是,如果我将鼠标移到该区域上,我会看到一只手伸出来。这告诉我图像正在渲染,但 IKImageView 无法显示自身。

4

0 回答 0