我有這種情況:你如何移動一個NSImageView?
我有一個包含自定義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已經從界面生成器相連。
我使用的視圖控制器這裏面的代碼移動定製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」已更新,但它顯示在舊的位置!任何線索?
感謝
您是否在代碼中創建並分配'dragAndDropImageView'?如果是這樣,請編輯您的問題以包含該代碼。另外,你還沒有在你的'MyAppDragAndDropImageView'類中重寫'frame'或'setFrame:',對吧? –
它使用Interface Builder分配,我沒有重寫這些方法。但我找到了一個臨時解決方案(看答案)。 – Zi0P4tch0
如果不先理解問題,我會毫不猶豫地將其稱爲解決方案。順便說一句,你爲什麼要從'awakeFromNib'設置幀? –