Iphone 如何将侦听器添加到MFMessageComposeViewController?

Iphone 如何将侦听器添加到MFMessageComposeViewController?,iphone,events,uitextfield,Iphone,Events,Uitextfield,我正在尝试使用MFMessageComposeViewController在iPhone上发送短信,我想添加一个侦听器,该侦听器可以识别短信何时发送(换句话说,当用户按下“发送”键时)。这个的语法是什么 例如,我知道使用textField时,侦听器的示例如下: [textField addTarget:self action:@selector(methodName)for controlEvents:uicontrolEventEditingDiEndonext] 您想将代理添加到MFMess

我正在尝试使用MFMessageComposeViewController在iPhone上发送短信,我想添加一个侦听器,该侦听器可以识别短信何时发送(换句话说,当用户按下“发送”键时)。这个的语法是什么

例如,我知道使用textField时,侦听器的示例如下:
[textField addTarget:self action:@selector(methodName)for controlEvents:uicontrolEventEditingDiEndonext]

您想将代理添加到
MFMessageComposeViewController
。在代理的
messageComposeViewController:didFinishWithResult:
方法中,您可以检查result参数以查看用户是否取消或发送了SMS

- (void)messageComposeViewController:(MFMessageComposeViewController *)controller 
                 didFinishWithResult:(MessageComposeResult)result {
        switch(result) {
        case MessageComposeResultCancelled:
            // user canceled sms
            break;
        case MessageComposeResultSent:
            // user sent sms
            break;
        case MessageComposeResultFailed:
            // sms send failed
            break;
        default:
            break;
}

第三个结果是

相关代码:

- (void)messageComposeViewController:(MFMessageComposeViewController *)controller
                 didFinishWithResult:(MessageComposeResult)result
{
    switch (result) {
        case MessageComposeResultCancelled:
            NSLog(@"Cancelled");
            break;
        case MessageComposeResultFailed:
            UIAlertView *alert = [[UIAlertView alloc] 
                          initWithTitle:@"MyApp" 
                                message:@"Unknown Error"
                               delegate:self 
                      cancelButtonTitle:@”OK” 
                      otherButtonTitles:nil];
            [alert show];
            [alert release];
            break;
        case MessageComposeResultSent:

            break;
        default:
            break;
    }

    [self dismissModalViewControllerAnimated:YES];
}

执行
MessageComposeResultSent
案例以了解消息何时发送。

这些都包含在同一个类中吗?或者,您希望在不同的类中发送消息时进行检测吗?因此,如果不使用委托,则无法进行检测?不,您需要实现委托。这就是它的目的。如果您需要在其他地方了解正在发送的SMS,您可以使用代理发出通知。