我遇到这种情况:
我有一个包含自定义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;
所有IBOutlet都已从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”已经更新,但它显示在旧位置!有线索吗?
由于
答案 0 :(得分:1)
我找到了一个解决方案:
-(void)awakeFromNib
{
//dragAndDropImageView frame
NSRect ddivFrame = [dragAndDropImageView frame];
ddivFrame.origin.x = SOME_NUMBER;
ddivFrame.origin.y = SOME_NUMBER;
[[dragAndDropImageView animator] setFrame:ddivFrame];
}
这完美无瑕!
答案 1 :(得分:0)
dragAndDropImageView
和clearButton
位于视图中心。在awakeFromNib
我将它们设置在屏幕外,然后我使用NSAnimation将它们滑入。
为什么不在笔尖中将它们设置为隐藏/ alphaValue
到0
,然后让你的NSViewAnimation显示它们(淡入它们)并将它们移动到位?