我有一个带兼容层的E3 / E4混合应用程序。我希望在整个应用程序启动并且GUI完全呈现后运行基于E4的代码。
是否可能有一个监听器或类似的东西可以挂钩我的代码?
谢谢
答案 0 :(得分:1)
您可以使用Application Startup Complete事件。
如果您有生命周期类,只需在类中添加如下方法:
dataGridView1.Rows.Cast<DataGridViewRow>()
.Where(x => !dataGridView1.SelectedRows.Contains(x) && !x.IsNewRow)
.ToList().ForEach(x => dataGridView1.Rows.Remove(x));
或者您可以使用事件代理订阅@IBOutlet weak var segmentControl: UISegmentedControl!
let recordType = "WebBooks"
var web = [CKRecord]()
var mobile = [CKRecord]()
var windows = [CKRecord]()
var databases = [CKRecord]()
func fetchBooksFromCloud() {
let cloudContainer = CKContainer.default()
let publicDatabase = cloudContainer.publicCloudDatabase
let predicate = NSPredicate(value: true)
let query = CKQuery(recordType: recordType, predicate: predicate)
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
var returnValue = 0
switch segmentControl.selectedSegmentIndex {
case 0:
returnValue = web.count
default:
break
}
return returnValue
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier:
"CategoriesCell", for: indexPath) as! HomeTableViewCell
switch segmentControl.selectedSegmentIndex {
case 0:
let webBooks = web[indexPath.row]
cell.bookName.text = web.object(forKey: "name") as? String
cell.authorName.text = web.object(forKey: "author") as? String
if let image = web.object(forKey: "image") {
let imageAsset = image as! CKAsset
if let imageData = try? Data.init(contentsOf: imageAsset.fileURL) {
cell.bookImageName.image = UIImage(data: imageData)
}
}
default:
break
}
return cell
}
事件。
注意:上面的@Optional
@Inject
public void appStartupComplete(@UIEventTopic(UIEvents.UILifeCycle.APP_STARTUP_COMPLETE) final Event event)
{
....
}
是UIEvents.UILifeCycle.APP_STARTUP_COMPLETE
- 有几个不同的Event
类,因此很容易出错。