gpt4 book ai didi

macos - 绑定(bind) nsrect 和 nstextfield

转载 作者:行者123 更新时间:2023-12-03 16:47:53 28 4
gpt4 key购买 nike

我想将 NSView 的框架绑定(bind)到模型属性 NSRect。我就是这样做的:

[textView.enclosingScrollView bind:@"frame" toObject:bindingsController withKeyPath:@"selection.textFrame" options:nil];

但我也想将frame.origin.x绑定(bind)到nstextField。如何使用 NSValueTransformer 做到这一点?

最佳答案

您只能绑定(bind)到一个属性,这意味着您不能直接绑定(bind)到框架的某个部分。您可以通过绑定(bind)到框架并使用转换器来获取 x 坐标来间接完成此操作,也可以向 View 添加一个属性来访问框架并返回 x 坐标。我建议使用第二种方法,因为您可以使用类别而不是子类来完成此操作,并且更容易允许设置值。

@interface NSView (FrameXCoordinate)
@property (nonatomic) double frameXCoordinate;
@end

@implementation NSView (FrameXCoordinate)

- (double)frameXCoordinate {
return [self frame].origin.x;
}
- (void)setFrameXCoordinate:(double)x {
NSRect frame = [self frame];
frame.origin.x = x;
[self setFrame:frame];
}

@end

使用此功能,您只需绑定(bind)到 frameXCooperative 属性并向文本字段添加数字格式化程序即可。

关于macos - 绑定(bind) nsrect 和 nstextfield,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7705194/

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