2012-04-09 55 views
2

是否有可行的方法來調整NSPredicateEditor調整NSTextFieldNSPredicateEditor不調整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

一個選項是創建一個自定義NSPredicateEditorRowTemplate並覆蓋templateViews方法。

像這樣:

- (NSArray *)templateViews { 
    NSArray * views = [super templateViews]; 
    NSView *lastView = [views lastObject]; 
    NSRect viewFrame = lastView.frame; 
    viewFrame.size.width = 100.0f; 
    lastView.frame = viewFrame; 
} 

然後設置任何你需要它的寬度。