- Take the steps described in Integrate DevMateKit if you haven't done it yet.
- Add the following method to your application delegate class implementation:
- (IBAction)showFeedbackDialog:(id)sender {
[DevMateKit showFeedbackDialog:nil inMode:DMFeedbackIndependentMode];
}
@IBAction func showFeedbackDialog(sender: AnyObject?) {
DevMateKit.showFeedbackDialog(nil, inMode: DMFeedbackMode.IndependentMode)
}
- Connect the newly added action method with the corresponding menu item or button in the XIB files.
- Build and run your application.
Send a feedback message as you defined in the previous step. If everything is configured correctly, your message will be displayed in the Feedback Management section of DevMate.
To learn more, see a GitHub example.
Customization
You can automatically fill in 'Name' and 'Email' fields of a feedback reporting dialog with the values specified by a user during activation. Also, you can add some predefined text to the feedback message field.
@property (nonatomic, retain) NSDictionary *defaultUserInfo;
FOUNDATION_EXPORT NSString *const DMFeedbackDefaultUserNameKey; // NSString object
FOUNDATION_EXPORT NSString *const DMFeedbackDefaultUserEmailKey; // NSString object
FOUNDATION_EXPORT NSString *const DMFeedbackDefaultCommentKey; // NSString object
To send a custom app log in a feedback message to DevMate, specify URL to this log file(s).
@property (nonatomic, retain) NSArray *logURLs;
Also, you can select the feedback window behavior to:
- independent (by default)
- child
- modal
- sheet
- floating
by setting the desired DMFeedbackMode
during the method call.
You can also set additional action that will be performed after the feedback message is sent, for example:
- (IBAction)showFeedbackDialog:(id)sender {
DMFeedbackController *controller = [DMFeedbackController sharedController];
[controller showFeedbackWindowInMode:DMFeedbackIndependentMode completionHandler:^(BOOL success) {
NSLog(@"Did finish feedback with success: %@", success ? @"TRUE" : @"FALSE");
}];
}
@IBAction func showFeedbackDialog(sender: AnyObject?) {
let controller = DMFeedbackController.sharedController()
controller.showFeedbackWindowInMode(DMFeedbackMode.IndependentMode) { (success) -> Void in
let message = success ? "TRUE" : "FALSE"
print("Did finish feedback with success: \(message)")
}
}
In this case, after sending a feedback successfully, a user receives 'Did finish feedback with success: TRUE' console message. Otherwise, they receive 'Did finish feedback with success: FALSE' message.