小编han*_*han的帖子

自定义NSSliderCell

我有点实现了一个自定义滑块单元,可以使用滚动条和旋钮的图像进行绘制.现在唯一的障碍就是这个,当我快速拖动旋钮时,图像变得混乱.我发布了一个屏幕截图.

截图

这是代码:

#import "customSliderCell.h"
@implementation customSliderCell
- (void)drawKnob:(NSRect)knobRect {

    NSImage * knob = knobImage;
 [[self controlView] lockFocus];
 [knob
 compositeToPoint:NSMakePoint(knobRect.origin.x,knobRect.origin.y+knobRect.size.height)
 operation:NSCompositeSourceOver];

[[self controlView] unlockFocus];
}
- (void)drawBarInside:(NSRect)rect flipped:(BOOL)flipped {
rect.size.height = 8;

    NSRect leftRect = rect;
    leftRect.origin.x=0;
    leftRect.origin.y=2;
    leftRect.size.width = knobrect.origin.x + (knobrect.size.width);
    [leftBarImage setSize:leftRect.size];
    [leftBarImage drawInRect:leftRect fromRect: NSZeroRect operation: NSCompositeSourceOver fraction:1];

    NSRect rightRect = rect;
    rightRect.origin.x=0;
    rightRect.origin.y=2;
    rightRect.origin.x = knobrect.origin.x;
    [rightBarImage setSize:rightRect.size];
    [rightBarImage drawInRect:rightRect fromRect: NSZeroRect operation: NSCompositeSourceOver fraction:1];
}
Run Code Online (Sandbox Code Playgroud)

啊,我很亲密.关于为什么会发生这种情况以及如何解决它的任何帮助将不胜感激,谢谢!

cocoa objective-c nsslider

8
推荐指数
1
解决办法
5384
查看次数

View Controller两次调用awakeFromNib

我正面临这个奇怪的问题而且我不确定我哪里出错了.

情况:

我有一个MainWindowController类,它将加载要显示的正确的nib.我创建了一个对象并将其更改为IB中的MainWindowController类,并将其与"MainWindowView"笔尖一起使用.

因此,基本上笔尖"MainWindowView"具有自定义视图和侧面的几个按钮,以便用户可以选择要加载的视图,并且它将加载其他相应的笔尖.我在IB中启动时隐藏了mainmenu,所以它只加载MainWindowView和其他nib文件.

然而,在调试时,当我在MainWindowController的awakeFromNib上放置NSLog时,我在控制台中看到它被调用了两次.

在我的项目中,我有一个startupController类和MainMenu.xib以及以下代码.

startUpController.h:

#import <Cocoa/Cocoa.h>
#import "MainWindowController.h"

@interface startupController : NSObject {
 MainWindowController *myWindowController;
}
@end
Run Code Online (Sandbox Code Playgroud)

startUpController.m:

#import "startupController.h"
@implementation startupController
-(void)awakeFromNib {
 [super init];
 if(myWindowController == nil)
 myWindowController = [[MainWindowController alloc] initWithWindowNibName:@"MainWindowView"];
 [myWindowController showWindow:self];
}
@end
Run Code Online (Sandbox Code Playgroud)

任何帮助表示赞赏.谢谢.

cocoa objective-c

4
推荐指数
1
解决办法
2359
查看次数

标签 统计

cocoa ×2

objective-c ×2

nsslider ×1