2013-07-23 32 views

回答

0

你可以讓這樣的事情:

// TSClearSupporting.h

@protocol TSClearSupporting <NSObject> 
- (void) clear; 
@end 

// TSTextField.h

#import <Cocoa/Cocoa.h> 
#import "TSClearSupporting.h" 

@interface TSTextField : NSTextField <TSClearSupporting> 
@end 

// TSTextField.m

#import "TSTextField.h" 

@implementation TSTextField 
- (void) clear 
{ 
    self.stringValue = @""; 
} 
@end 

// TSMainView.m

#import "TSMainView.h" 
#import "TSClearSupporting.h" 

@implementation TSMainView 

- (IBAction) clearAll: (id)sender 
{ 
    NSArray* subViews = self.subviews; 

    for (NSView* view in subViews) 
    { 
     if ([view conformsToProtocol: @protocol(TSClearSupporting)]) 
     { 
      [view performSelector: @selector(clear)]; 
     } 
    } 
} 
5

我用下面的函數

-(void)clearAllSubviewsOfView :(NSView *)parent 
{ 
    for (NSView *subview in [parent subviews]) { 
     [subview removeFromSuperview]; 
    } 
} 
+1

看起來應該是'[parent subviews]' –

+0

確實,謝謝@KeithSmiley –

相關問題