- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用Apple的示例创建了拖放应用程序:https://developer.apple.com/library/mac/samplecode/SourceView/Introduction/Intro.html
我加载拖动文件的实际图像。
当我拖动例如这个 时图像文件到我的 NSOutlineView 中,我看到它以这种方式调整大小:
我按原样使用 Apple 的 ImageAndTextCell 类来自定义 NSTextFieldCell,无需任何修改。
如何调整该图像的大小以按比例适应单元格矩形?
最佳答案
工作完美。
@implementation NSImage (ProportionalScaling)
- (NSImage*)imageByScalingProportionallyToSize:(NSSize)targetSize
{
NSImage* sourceImage = self;
NSImage* newImage = nil;
if ([sourceImage isValid])
{
NSSize imageSize = [sourceImage size];
float width = imageSize.width;
float height = imageSize.height;
float targetWidth = targetSize.width;
float targetHeight = targetSize.height;
float scaleFactor = 0.0;
float scaledWidth = targetWidth;
float scaledHeight = targetHeight;
NSPoint thumbnailPoint = NSZeroPoint;
if ( NSEqualSizes( imageSize, targetSize ) == NO )
{
float widthFactor = targetWidth / width;
float heightFactor = targetHeight / height;
if ( widthFactor < heightFactor )
scaleFactor = widthFactor;
else
scaleFactor = heightFactor;
scaledWidth = width * scaleFactor;
scaledHeight = height * scaleFactor;
if ( widthFactor < heightFactor )
thumbnailPoint.y = (targetHeight - scaledHeight) * 0.5;
else if ( widthFactor > heightFactor )
thumbnailPoint.x = (targetWidth - scaledWidth) * 0.5;
}
newImage = [[NSImage alloc] initWithSize:targetSize];
[newImage lockFocus];
NSRect thumbnailRect;
thumbnailRect.origin = thumbnailPoint;
thumbnailRect.size.width = scaledWidth;
thumbnailRect.size.height = scaledHeight;
[sourceImage drawInRect: thumbnailRect
fromRect: NSZeroRect
operation: NSCompositeSourceOver
fraction: 1.0];
[newImage unlockFocus];
}
return [newImage autorelease];
}
@end
关于cocoa - 在自定义 NSTextFieldCell 中调整 NSImage 大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29817609/
我有一个 NSTableView,我使用以下代码更改行的高度: - (CGFloat)tableView:(NSTableView *)tableView heightOfRow:(NSInteger
我创建了一个自定义 NSTextFieldCell 并覆盖了 - (void)drawInteriorWithFrame: (NSRect)cellFrame inView: (NSView *)co
我希望我的每个表格单元格都可以滚动,因为它是可编辑的。我正在使用 self.nsChildTextFieldObj = [[NSTextFieldCell alloc] init];
我有一个基于单元格的 NSOutlineView,它显示 NSTextFieldCell 对象。 我想响应 keydown 或 keyup 事件,以便在文本包含某些预设关键字时使 NSTextFiel
我有一个表格 View ,在该 View 上选择一行的一列将调用重写的方法 - (void)selectWithFrame:(NSRect)inCellFrame inView:(NSView *)i
我有基于 View 的 NSTableView,有 2 个文本列。 第一列使用自定义 NSTextFieldCell。第二列使用默认单元格。 这是自定义单元格代码: class CustomTextF
首先,我只需要文本上的一些背景颜色。就像 F 脚本浏览器中的标题 设置[cell setBackgroundColor: [NSColor blueColor]];为整个单元格空间着色,而不仅仅是文本
当你在drawInteriorWithFrame:inView:中调用[super drawInteriorWithFrame:cellFrame inView:controlView]时,有没有办法
我的 NSTextFieldCell 代码是: - (void)drawInteriorWithFrame:(NSRect)cellFrame inView:(NSView *)controlView
我试图在选择单元格时更改 NSTextFieldCell 的背景颜色。 这是代码: - (void)drawWithFrame:(NSRect)cellFrame inView:(NSView *)c
我有一个 NSTextFieldCell 子类,在实现中只有这个代码: - (NSRect)drawingRectForBounds:(NSRect)theRect { // Get the
我试图获取 NSTextFieldCell 的 NSPoint 坐标,但 NSTextFieldCell 不是从 NSView 继承的,因此没有框架方法。关于如何解决这个问题有什么想法吗? 我正在尝试
有什么方法可以根据 NSTableView 中的文本量调整 NSTextFieldCell 的高度吗? 简而言之,我希望 tableView:heightOfRow: 根据相应 NSTextField
我需要显示一个多行的 NSTextFieldCell,每行格式不同。 是这样的: 第 1 行:标题 第 2 行:描述 我对 NSTextFieldCell 进行了子类化,但我不知道如何继续使用它。 有
我的应用程序中有一个 NSTableView,其中的数据在 X 轴和 Y 轴上绘制(即,每一行都与每一列匹配。)我已经按照我想要的方式填充了单元格的数据,但水平延伸的柱子看起来很糟糕。 我想将 NST
我基本上想要实现的是更改表格中单元格的格式,以便在单元格未启用时将其清空。 为了定义是否启用表列中的单元格,我使用启用的绑定(bind)进行了绑定(bind),并且工作正常,启用了表的某些行中的单元格
我想在 TableView 中显示一个长度为(最大)4000 个字符的字符串。我尝试过使用 NSAttributedString 来找出 NSTextFieldCell 的行高,但是当我插入 > 4
我已经尝试了一两天,尝试在 NSTextField 的文本内绘制阴影(并使前景色透明,因此您看到的只是文本内的阴影)。我还没有取得理想的、实际的结果。我在此方面取得的唯一成功是将文本转换为 NSBez
我有一个 NSTableView,它显示一些代表我的自定义对象的信息。我没有使用绑定(bind)。 通常,我会创建自己的 NSCell 来显示数据,但这一次我需要一个 NSTextFieldCell,
如果用户在编辑 NSTextFieldCell 时输入了某些文本,我会尝试将 NSTextFieldCell 的内容加粗。 到目前为止我已经得到了这个: 在 awakeFromNib 中: [[NSN
我是一名优秀的程序员,十分优秀!