是否有可行的方法使NSPredicateEditor
调整大小NSTextField
?
我得到的只是继承NSPredicateEditorRowTemplate
并在我的班级中写下以下函数:
- (void)setTextFieldFrameWithPredicateEditor:(NSPredicateEditor *)predicateEditor{
NSArray *arr = [self templateViews];
NSView *view = [arr lastObject];
NSSize needSize = NSMakeSize(NSMaxX(predicateEditor.frame), 17);
[view setFrameSize:needSize];
}
[view setAutoresizingMask:(NSViewMaxXMargin | NSViewWidthSizable)]
我每按一次按钮显示NSPredicateEditor就会调用此函数,并且每次都在函数-(IBAction)predicateEditorChanged:(NSPredicateEditor *)sender
中调用。它似乎工作正常,但很多时候我更改设置NSPredicateEditor在某个时候调整大小开始工作不正确。
请帮助。
答案 0 :(得分:0)
一种选择是创建自定义NSPredicateEditorRowTemplate并覆盖templateViews方法。
像这样:
- (NSArray *)templateViews {
NSArray * views = [super templateViews];
NSView *lastView = [views lastObject];
NSRect viewFrame = lastView.frame;
viewFrame.size.width = 100.0f;
lastView.frame = viewFrame;
}
然后将宽度设置为您需要的宽度。