我創建了一個名爲TaskUIButton的自定義按鈕,它從UIButton繼承。我現在唯一的區別是「va」屬性。檢索Objective-C中的自定義按鈕屬性
這裏的接口
// TaskUIButton.h
@interface TaskUIButton : UIButton
{
NSString *va;
}
@property(nonatomic, retain) NSString *va;
@end
和實現文件
//TaskUIButton.m
@implementation TaskUIButton
@synthesize va;
@end
現在,我已經得到了我使用,我想用它來設置和檢索VA屬性的動作一個按鈕(僅用於測試/實驗當然)。
這裏就是按鍵動作
- (IBAction)setAndRetrieveVa:(id)sender{
TaskUIButton *imaButton = [TaskUIButton buttonWithType:UIButtonTypeRoundedRect];
imaButton.va = @"please work";
NSLog(@"%@", imaButton.va);
}
在激活setAndRetrieveVa:動作,我的應用程序崩潰,並:
-[UIRoundedRectButton setVa:]: unrecognized selector sent to instance 0x4b3a5a0
我敢肯定,它對我而言一個愚蠢的錯誤,但我一直在尋找一段時間,並會喜歡一些見解!
謝謝!
果然,這似乎解決了它!謝謝:D我會告訴你,如果我遇到這種方法的任何問題。 – hemlocker 2011-06-07 20:14:28
嗯。當我實際嘗試在視圖上顯示自定義按鈕時,它們不顯示。我猜這是因爲按鈕沒有「buttonType」屬性集。但是,由於buttonType是一個只讀屬性,我無法使用點語法來設置它。無論如何,我可以使用alloc-init方法設置buttonType嗎? – hemlocker 2011-06-07 20:59:05
不可以。你不能設置它。一旦你繼承它,它將默認爲'UIButtonStyleCustom'。您將必須定義一個框架,設置圖像或覆蓋它的'drawRect'方法。 – 2011-06-07 21:04:31