3

我有这种情况:

我有一个包含自定义 NSImageView 的 NSView。我正在尝试将 NSImageView 从视图控制器中移出,但到目前为止还没有成功。

这是视图控制器的标题:

#import <Cocoa/Cocoa.h>

#include "MyAppDragAndDropImageView.h"

@interface MyAppViewController : NSViewController <MyAppDragAndDropImageViewDelegate>

@property (nonatomic,assign) IBOutlet MyAppDragAndDropImageView *dragAndDropImageView;

@property (nonatomic,assign) IBOutlet NSTextField *workingFileLabel;
@property (nonatomic,assign) IBOutlet NSTextField *workingFileSizeLabel;

@property (nonatomic,assign) IBOutlet NSButton *clearButton;

-(IBAction)onClearButtonClicked:(id)sender;

所有 IBOutlets 都已从 Interface Builder 连接。

我在视图控制器中使用此代码来移动自定义 NSImageView ...

-(void)awakeFromNib
{
    //dragAndDropImageView frame
    NSRect ddivFrame = [dragAndDropImageView frame];
    ddivFrame.origin.x = SOME_NUMBER;
    ddivFrame.origin.y = SOME_NUMBER;

    [dragAndDropImageView setFrame:ddivFrame];
    [dragAndDropImageView setNeedsDisplay:YES];

}

......但是什么也没有发生!

使用 NSLog 我发现框架“x”和“y”已经更新,但它显示在旧位置!有什么线索吗?

谢谢

4

2 回答 2

1

我找到了一个解决方案:

-(void)awakeFromNib
{
    //dragAndDropImageView frame
    NSRect ddivFrame = [dragAndDropImageView frame];
    ddivFrame.origin.x = SOME_NUMBER;
    ddivFrame.origin.y = SOME_NUMBER;

    [[dragAndDropImageView animator] setFrame:ddivFrame];

}

这完美无瑕!

于 2012-12-15T22:46:52.927 回答
0

dragAndDropImageViewclearButton在视图内居中。在awakeFromNib我将它们设置为屏幕外,然后我使用 NSAnimation 将它们滑入。

为什么不在笔尖中将它们设置为隐藏/alphaValue0,然后让您的 NSViewAnimation 显示它们(淡入它们)并将它们移动到位?

于 2012-12-16T01:21:38.343 回答