NSPredicateEditor 不调整 NSTextField 的大小
Posted
技术标签:
【中文标题】NSPredicateEditor 不调整 NSTextField 的大小【英文标题】:NSPredicateEditor does not resize NSTextField 【发布时间】:2012-04-09 10:44:46 【问题描述】:有没有可行的方法让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 有时调整大小开始工作不正确。
请帮忙。
【问题讨论】:
【参考方案1】:一种选择是创建一个自定义的 NSPredicateEditorRowTemplate 并覆盖 templateViews 方法。
像这样:
- (NSArray *)templateViews
NSArray *views = [super templateViews];
NSView *lastView = [views lastObject];
NSRect viewFrame = lastView.frame;
viewFrame.size.width = 100.0f;
lastView.frame = viewFrame;
return views;
然后将宽度设置为您需要的任何值。
【讨论】:
以上是关于NSPredicateEditor 不调整 NSTextField 的大小的主要内容,如果未能解决你的问题,请参考以下文章