Im新的Objective-C & iOS編程讓我對事件和動作處理非常困惑。我真的不明白將Interface builder中的按鈕與其文件所有者方法連接起來的區別(例如,用我的個人方法buttonClicked連接按鈕操作),並且另一方面創建將響應按鈕事件的委託?我很困惑,因爲我來自C#(.NET),並且你只能通過委託來處理事件。Objective-C解析事件和動作之間的區別
0
A
回答
1
讓我們先編程創建事件處理。一些假設...
- 你有一流的
MyViewController
- 該類確實包含屬性
myButton
(UIButton *
) - 你想處理事件在這個類
第一步是創建方法來處理您的按鈕水龍頭:
-(void)onMyButtonTap:(UIButton *)sender {
// My button was tapped, whoa, which one is in sender argument
}
添加敲擊事件處理:
-(void)loadView {
[super loadView];
[self.myButton addTarget:self action:@selector(onMyButtonTap:) forControlEvents: UIControlEventTouchUpInside];
}
此代碼的用途是什麼?在這種情況下,self
是MyViewController
類的實例,它將處理內部事件觸發(addTarget
)。 action
是在UIControlEventTouchUpInside
發生火災時調用的方法。
所以addTarget:...
行添加事件處理和時控事件觸發,這...
[self onMyButtonTap:self.myButton];
...將自動被調用。
它簡單的例子,它可以在現實世界更爲複雜:
- ,你可以在不同的
UIView
UIButton
(好的做法,我不喜歡當人們把他們在UIViewController
) - 可以處理多個按鈕水龍頭在一個法(
sender
參數區分它們) - 您可以創建更多的自來水處理方法,用於一個鍵一個方法,
- ...
現在回到網點。奧特萊斯僅爲addTarget:...
的自動膠水。
UIButton
是UIControl
的子類,在這裏您可以看到如何處理其他事件以及可以處理哪些事件。
代表團也是常見做法,但不適用於UIControl
。沒有代表等,你必須這樣做。
或者您可以增強UIButton
來處理通過塊的事件。以下是https://gist.github.com/2468899的一種方式,或者您可以通過Google獲取更多信息。
相關問題
- 1. OnClick()事件和OnClickListener之間的區別?
- 2. JSF:ViewActions和preRender事件之間的區別
- 3. 事件和方法之間的區別
- 4. LinkLabel.Click和LinkLabel.LinkClicked事件之間的區別?
- 5. Page'loaded'事件行爲的解釋 - navigateTo()和goBack()之間的區別
- 6. 命名實體識別和解析之間的區別?
- 7. 選區解析器和依賴關係解析器之間的區別
- 8. 意圖解析和ACTION_CHOOSER和ACTION_PICK_ACTIVITY之間的區別
- 9. 「DOMContent事件」和「加載事件」之間的區別
- 10. 事件驅動和異步之間有什麼區別?在epoll和AIO之間?
- 11. 事務和TransactionScope之間的區別
- 12. 事件與delegateEvents之間的區別?
- 13. 瞭解ToArray和JSON之間的區別
- 14. 瞭解.body和body之間的區別
- 15. 解釋Intent和PendingIntent之間的區別
- 16. LL解析器和AST之間的區別
- 17. 鑄造,解析和轉換之間的區別
- 18. 日期解析和差異日期之間的區別
- 19. 解析,轉換和CType之間的區別()
- 20. 類型轉換和解析之間的區別?
- 21. '|'之間的區別和 '+' 的位操作
- 22. Visual Studio中的KeyDown事件,KeyPress事件和KeyUp事件之間的區別
- 23. Laravel 5.1:事件和郵件之間的區別:隊列?
- 24. 工作簿和_workbook之間的區別
- 25. 屏幕和活動之間的區別
- 26. StateChart和活動圖之間的區別
- 27. 可拖動和ondragstart之間的區別
- 28. 動態和System.Object之間的區別
- 29. Primefaces和primefaces之間的區別移動
- 30. 動態二進制儀表和分析之間的區別
如果插座是自動膠水,代碼在哪裏生成? – gorgi93 2012-07-24 13:33:58
@gGololicic Visual Studio中的GUI設計器確實會生成實際的源代碼,這些源代碼可以按照設計構建GUI,因此在編譯時將GUI設置爲一成不變。 XCode中的GUI設計器不會生成源代碼。相反,它會生成一個.nib(有時也稱爲.xib),或者在iOS 5及更高版本的情況下生成.storyboard。 Nibs,xibs和storyboard可以被認爲是描述GUI的元數據,並且GUI在運行時從中生成。這有點像數據驅動的GUI。 – HairOfTheDog 2013-03-19 07:04:21