kgz*_*kgz 5 delphi macos cocoa delegates webview
我想在Delphi中为这个obj-c方法创建一个WebView的WebFrameLoadDelegate方法:
- (void)webView:(WebView *)sender didFinishLoadForFrame:(WebFrame *)frame
Run Code Online (Sandbox Code Playgroud)
如何在delphi中声明此方法?
这些不起作用:
public
procedure didFinishLoadForm( webView:WebView; Sender:WebFrame ); cdecl;
procedure webViewdidFinishLoadForm( webView:WebView; Sender:WebFrame ); cdecl;
Run Code Online (Sandbox Code Playgroud)
使用webview.setFrameLoadDelegate(d.GetObjectID)设置委托类似乎没问题;
其中d是TMyWebViewDelegate(TOCObject)类,GetObjectiveClass被覆盖,返回一个接口(NSObject),就像这里的工具栏委托http://delphihaven.wordpress.com/2012/07/15/using-the-cocoa-toolbar- nstoolbar合XE2 /
但我的方法没有被调用.声明这种obj-c方法的模式是什么?
通常最好使用方法和参数的确切名称(由Rudy回答).但有时这是不可能的.两个函数可能需要具有相同的名称,但具有相同的参数类型,因此overload
无法使用.在这种情况下,您可以使用该MethodName
属性.所以这是另一个有效的解决方案:
[MethodName('webView:didFinishLoadForFrame:')]
procedure webViewdidFinishLoadForm( Sender:WebView; Frame:WebFrame ); cdecl;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
127 次 |
最近记录: |