3
我想知道如何使用自定義代理?自定義代理
我想知道如何使用自定義代理?自定義代理
也許一個例子將幫助您:
#import <UIKit/UIKit.h>
@protocol VSKeypadViewDelegate
@required
-(int)numberOfRows;
-(int)numberOfColumns;
-(NSString*)titleForButtonOnRow:(int)row andColumn:(int)column;
-(id)valueForButtonOnRow:(int)row andColumn:(int)column;
-(CGSize)sizeForButtonOnRow:(int)row andColumn:(int)column;
-(void)receivedValue:(id)value;
-(CGPoint)keypadOrigin;
@optional
-(NSArray *)additionalButtonsForKeypad;
//-(UIColor *)keypadBackgroundColor;
//-(UIColor *)keyBackgroundColorForRow:(int)row andColumn:(int)Column;
-(UIImage *)backgroundImageForState:(UIControlState)state forKeyAtRow:(int)row andColumn:(int)column;
-(BOOL)isButtonEnabledAtRow:(int)row andColumn:(int)column;
@end
@interface VSKeypadView : UIView {
id<VSKeypadViewDelegate> delegate;
NSArray *keypadButtons;
}
+ (VSKeypadView *)keypadViewWithFrame:(CGRect)r;
- (id)initWithFrame:(CGRect)r ;
-(void)fireKeypadButton:(id)sender;
@property(nonatomic, assign) id<VSKeypadViewDelegate> delegate;
@end
這是一個鍵盤我寫的。
VSKeyPadView派生自UIView並具有id<VSKeypadViewDelegate>
類型的代表伊維爾,這意味着設置爲delegate
的對象預計符合協議VSKeypadViewDelegate
。該協議有一些必要的和一些可選的方法。這意味着,你有責任編寫這些方法 - 對你來說有意義的。
您會在github的示例應用程序中找到此代碼。
可能這對你有用。 http://stackoverflow.com/questions/3095642/custom-delegate-example-in-objective-c – 2011-04-15 11:05:36