我对Monotouch中的P/Invoke
知识非常有限,我想调用iOS私有API UITextView
(具体来说是setContentToHTMLString
),但我不确定从何处开始。
如果有人能告诉我如何实现这一点(甚至从哪里开始!)那就太棒了。
需要注意的是,这是我正在做的一个个人项目,主要是为了扩大我的知识面。这个应用程序被提交到应用商店的机会非常小,因此它不受应用商店规定/苹果更改的影响。
编辑
只是简单地使用Selector
吗?
我对Monotouch中的P/Invoke
知识非常有限,我想调用iOS私有API UITextView
(具体来说是setContentToHTMLString
),但我不确定从何处开始。
如果有人能告诉我如何实现这一点(甚至从哪里开始!)那就太棒了。
需要注意的是,这是我正在做的一个个人项目,主要是为了扩大我的知识面。这个应用程序被提交到应用商店的机会非常小,因此它不受应用商店规定/苹果更改的影响。
编辑
只是简单地使用Selector
吗?
Selector s = new Selector("myPrivateAPIMethodName");
MyObjectToCallTheMethodOn.PerformSelector(s, parameterOfTheObject, 0);
当然,这一点需要非常小心...苹果不允许您的应用调用私有API,因此如果您计划像您想要的那样使用API提交到AppStore,他们将拒绝您的应用。
object oToInvoke;
//Get the type of object
Type t = typeof( oToInvoke );
//Invoke 'PrivateMethodName'
return t.InvokeMember( "PrivateMethodName",
System.Reflection.BindingFlags.NonPublic
| System.Reflection.BindingFlags.Instance
| System.Reflection.BindingFlags.InvokeMethod
, null
, oToInvoke
, null );
这将允许调用一个可以有返回类型的方法。您只需要转换InvokeMember的返回类型即可。
这在System.Reflection命名空间中。
希望能帮到您!