3

私はこの状況にあります:

カスタムNSImageViewを含むNSViewがあります。ビューコントローラからNSImageViewを移動しようとしていますが、これまでのところ成功していません。

これは、ViewControllerのヘッダーです。

#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はInterfaceBuilderから接続されています。

ビューコントローラ内でこのコードを使用して、カスタム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を使用してそれらをスライドさせます。

それらをnibでhidden/ alphaValuetoとして設定してから0、NSViewAnimationでそれらを表示(フェードイン)して所定の位置に移動させてみませんか?

于 2012-12-16T01:21:38.343 に答える