gpt4 book ai didi

macos - 如何实现x :y named delegate methods?

转载 作者:行者123 更新时间:2023-12-03 15:08:25 26 4
gpt4 key购买 nike

我想在 Delphi 中为这个 obj-c 方法创建一个 WebView 的 WebFrameLoadDelegate 方法:

- (void)webView:(WebView *)sender didFinishLoadForFrame:(WebFrame *)frame

这个方法在delphi中应该如何声明?

这些不起作用:

public
procedure didFinishLoadForm( webView:WebView; Sender:WebFrame ); cdecl;
procedure webViewdidFinishLoadForm( webView:WebView; Sender:WebFrame ); cdecl;

设置委托(delegate)类似乎可以使用 webview.setFrameLoadDelegate( d.GetObjectID );

其中 d 是 TMyWebViewDelegate( TOCObject ) 类,覆盖了 GetObjectiveClass,返回一个接口(interface)(NSObject),就像此处的工具栏委托(delegate) http://delphihaven.wordpress.com/2012/07/15/using-the-cocoa-toolbar-nstoolbar-in-xe2/

但是我的方法没有被调用。声明此类 obj-c 方法的模式是什么?

最佳答案

通常最好使用方法和参数的确切名称(如 Rudy 所回答)。但有时这是不可能的。两个函数可能需要具有相同的名称,但具有相同的参数类型,以便无法使用overload。在这种情况下,您可以使用 MethodName 属性。所以这是另一个有效的解决方案:

[MethodName('webView:didFinishLoadForFrame:')]
procedure webViewdidFinishLoadForm( Sender:WebView; Frame:WebFrame ); cdecl;

关于macos - 如何实现x :y named delegate methods?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26428861/

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