【问题标题】:Changing the action bound to the send button in MFMessageComposeViewController更改绑定到 MFMessageComposeViewController 中的发送按钮的操作
【发布时间】:2014-05-27 18:43:35
【问题描述】:

我知道这在官方上是不可能的。我不想把它发布到商店,它只是一个原型。

我试着找到按钮:

MFMessageComposeViewController *messageController = [[MFMessageComposeViewController alloc] init];
messageController.messageComposeDelegate = self;

NSArray * allViewControllers = [messageController viewControllers];

for (UIViewController *viewController in allViewControllers)
{
    NSArray *allSubviews = [viewController.view subviews];
    NSLog(@"class name: %@", viewController.class);

    for(UIView *view in allSubviews)
    {
        if([view isMemberOfClass:[UIButton class]])
        {
            UIButton *button = (UIButton *)view;
            NSLog(@"title: %@", button.titleLabel.text);
        }
    }
}

但是没有任何效果,所以可以更改发送按钮吗?一种黑客行为?还是导入私有标头?

谢谢。

更新:

尝试了以下方法:

NSArray *allSubviews = [[messageController toolbar] subviews];

for(UIView *view in allSubviews)
{
    if ([view isKindOfClass:[UIToolbar class]])
    {
        UIToolbar *navigationBar = (UIToolbar *)view;
        for(UIView *subview in navigationBar.subviews)
        {
            NSLog(@"%@", [subview subviews]);
            if([subview isMemberOfClass:[UIBarButtonItem class]])
            {
                UIBarButtonItem *button = (UIBarButtonItem *)view;
                NSLog(@"title: %@", button.title);
            }
        }

    }

【问题讨论】:

    标签: ios objective-c cocoa-touch ios7


    【解决方案1】:

    在幕后,是的,您可以欺骗发送按钮的标签。

    官方不允许这样做,但对于私人用途,您可以使用 github 上提供的以下框架。 https://github.com/nst/iOS-Runtime-Headers/tree/master/Frameworks/MessageUI.framework.

    在你的项目中包含这个而不是默认框架。 并随心所欲地改变。

    如果有任何疑问,请告诉我,我会显示代码。

    【讨论】:

      【解决方案2】:

      我从未这样做过,但这里有一些想法可以为您指明正确的方向。

      MFMailComposeViewControllerUINavigationController。 “发送”和“取消”按钮实际上位于其导航栏中。导航栏是UINavigationController's 视图的子视图,而不是属于它的任何子视图。您正在记录每个子视图的子视图,因此您永远不会真正看到导航栏,因为它是由父视图管理的。

      尝试记录messageController.view 的子视图,这应该会给你导航栏。另一件事是您正在检查UIButton,而您可能想要检查UIBarButtonItem

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-10-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多