2011-11-26 63 views
1

我在我的應用程序中使用了UITableView。我有以下問題:MonoTouch UITableView問題

  1. 我需要知道用戶何時選擇了一行。從我收集的內容來看,我需要編寫一個實現UITableViewDelegate的類。然後我需要重寫RowSelected方法。無論如何在我的控制器中這樣做(而不是創建另一個類)。這似乎是矯枉過正。類似於myTableView.RowSelected += MyMethod()。我不確定爲什麼RowSelected不是首先出現的事件...

  2. 我想剪輯左側(默認爲右側)UITableView(標題中的文本)的標題。我知道你可以設置LineBreakMode,但似乎我必須在GetViewForHeader方法中執行此操作(在標題中創建我自己的UIView)。有沒有更簡單的方法來做到這一點?

回答

2

MonoTouch的優惠(接近)完全綁定了iOS SDK - 即一些東西在.NET基礎類庫已經存在,並且不重複(但如果需要的話,我們將添加它們,只需填寫在這種情況下報告bug)。

一般而言那些綁定非常接近,因爲原來的API(或者ç或基於目標C):

  • 裝訂處理,使用高度自動化的btouch工具供給與MonoTouch(你可以用它來綁定你自己的ObjectiveC API);

  • 它確實有助於移植existsing代碼,查找代碼示例和API文檔(這裏的蘋果開發者網站,博客,問題就stackoverflow.com ...)

我不知道爲什麼RowSelected並不是一個事件...

像.NET提供的事件在Objective-C中不存在。在很多(但不是全部)情況下,MonoTouch添加了.NET風格的事件,允許您避免定義自己的xxxDelegates類型。一般來說,這些事件被命名爲On +委託選擇器的名稱。

有沒有更簡單的方法來做到這一點?

UITableView情況下(的ObjectiveC)API是IMHO有點混亂 - 但有一個替代:MonoTouch.Dialog。它使表更容易,並有一個.NET友好的API。

p.s.請嘗試每個條目只詢問一個問題,因爲您無法將多個標註標記爲已接受。它還可以幫助那些在網站上尋找類似問題/答案的人。