菜鸟教程小白 发表于 2022-12-12 15:51:57

iphone - 禁用 MFMailComposeViewController 上的编辑


                                            <p><p>我们有一个业务规则,我们需要限制在 MFMailComposeViewController 上编辑电子邮件正文内容。内容将被预先填充并且需要保持静态。是否可以抓取 UITextView 对象并将其设置为禁用或类似的东西? </p>

<p>另一个想法是在 UITextView 的顶部显示一个清晰的 View 以防止任何交互。 </p>

<p>有什么想法吗?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>好的,所以是的,答案是<em>不使用私有(private) API 是不可能的</em>。</p>

<p>我设法用下面的代码做到了。</p>

<pre><code>- (void) getMFComposeBodyFieldViewFromView:(UIView *)view {
   for (UIView *item in view.subviews) {
    if ([[ description] isEqualToString:@&#34;MFComposeTextContentView&#34;]) {
         self.mailBodyView = item;
         break;
      }
      if( &gt; 0) {
      ;
      }
   }
}
</code></pre>

<p>然后调用上述方法,使其设置ivar <code>mailBodyView</code>,然后在<code>MFComposeBodyField<code>UIWebDocumentView</code>上调用<code>_setEditable:</code>方法</code> 继承自。</p>

<pre><code>;
;
</code></pre>

<p>这会导致正文中的内容无法编辑,交互有点奇怪,因为键盘仍然出现,您仍然可以移动光标并选择内容,但它肯定会阻止用户编辑。 </p>

<p><strong>更新</strong></p>

<p>我更新了代码以查找 <code>MFComposeTextContentView</code>,它是 <code>MFComposeBodyField</code> 的父级,我在该对象上调用 <code>setEditable:</code> 来阻止键盘从出现,更好的解决方案!</p></p>
                                   
                                                <p style="font-size: 20px;">关于iphone - 禁用 MFMailComposeViewController 上的编辑,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/4786999/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/4786999/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: iphone - 禁用 MFMailComposeViewController 上的编辑