gpt4 book ai didi

objective-c - 将 NSTextField 的文本颜色绑定(bind)到 NSColorWell 上?

转载 作者:行者123 更新时间:2023-12-03 17:43:21 28 4
gpt4 key购买 nike

我对 Cocoa Bindings 还很陌生,但我已经看到了足够多的东西,我很想把我所有旧的笨重方法改成它。例如,我有一个 NSColorWell 可以更改 View 中某些 NSTextField 的文本颜色。实践起来似乎很简单,但行不通。

这是我的 NSColorWell 绑定(bind)的外观:

enter image description here

这是我的 NSTextField 的绑定(bind):

enter image description here

但它不显示颜色,而是显示 NSCaliberatedRGBColor...。显然它没有设置字段的颜色值,它只是显示原始数据。

所以,在摸索之后,我尝试通过这样做来制作自己的 NSValueTransformer:

@interface DataToColor: NSValueTransformer {}
@end
#import "QWDataToColor.h"
@implementation DataToColor
+(Class)transformedValueClass { return [NSColor class]; }
+(BOOL)allowsReverseTransformation { return NO; }
-(id)transformedValue:(id)item {
NSColor *theColor=nil;
NSData *theData=[NSData dataWithData:item];
if (theData != nil)
theColor=(NSColor *)[NSUnarchiver unarchiveObjectWithData:theData];
return theColor;
}
@end

然后我将该值转换器设置为 IB 绑定(bind)中的“值转换器”区域。

但是,它仍然给出了相同的结果。有什么想法吗?

最佳答案

值绑定(bind)是:

An NSString or NSNumber that is displayed as the content of the NSTextField

您想要绑定(bind) NSTextField 的 textColor 属性,而不是值。

参见http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/CocoaBindingsRef/BindingsText/NSTextField.html查看 NSTextField 支持的绑定(bind)的完整列表。

关于objective-c - 将 NSTextField 的文本颜色绑定(bind)到 NSColorWell 上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5906023/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com