gpt4 book ai didi

ios - 我如何使用 Xamarin 的 Storyboard 和 F#

转载 作者:可可西里 更新时间:2023-11-01 03:45:41 24 4
gpt4 key购买 nike

因为它(还)不可能使用 Storyboard 来生成类和胶水代码。我有自己编写 F# 类并自己进行粘合的想法。

所以我写了这个 Storyboard命名空间的加载

open System
open MonoTouch.UIKit
open MonoTouch.Foundation

[<Register("AppDelegate")>]
type AppDelegate() =
inherit UIApplicationDelegate()

member val window = null with get, set

override this.FinishedLaunching(app, options) =
this.window <- new UIWindow(UIScreen.MainScreen.Bounds)
let Storyboard = UIStoryboard.FromName("MainStoryboard", null)
this.window.RootViewController <- Storyboard.InstantiateInitialViewController() :?> UIViewController
this.window.MakeKeyAndVisible()
true

module Main =
[<EntryPoint>]
let main args =
UIApplication.Main(args, null, "AppDelegate")
0

和下面的 Controller 类

open System
open System.Drawing
open MonoTouch.UIKit
open MonoTouch.Foundation

[<Register("HomeController")>]
type HomeController() =
inherit UIViewController()

override this.ViewDidLoad() =
base.ViewDidLoad()
System.Console.WriteLine("FOO!")

然后我创建了 Storyboard(见附图)。 Views properties

AND - 一切都被加载并且 Storyboard工作正常 - 一个异常(exception):ViewDidLoadnever 被调用。显然我没有成功连接我的手写 Controller 。

有没有人知道如何做到这一点?

最佳答案

我找到了答案。而不是创建一个没有参数的 Controller

[<Register("HomeController")>]
type HomeController() =
inherit UIViewController()

必须创建一个带有指针的 Controller ,并使用该指针初始化基本 Controller 。

[<Register("HomeController")>]
type HomeController(handle:IntPtr) =
inherit UIViewController(handle)

用 View Controller 附加 View 上的控件(例如附加名为“Clicker”的按钮)

enter image description here enter image description here

必须将以下代码添加到您的 View Controller

[<Register("HomeController")>]
type HomeController(handle:IntPtr) =
inherit UIViewController(handle)

let mutable _Clicker = new UIButton()

[<Outlet>]
member this.Clicker
with get() = _Clicker
and set value = _Clicker <- value

关于ios - 我如何使用 Xamarin 的 Storyboard 和 F#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27251149/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com