Mac/Whiteboard/Whiteboard/JoinViewController.m (39 lines of code) (raw):

// // JoinViewController.m // BasicDemo // // Copyright © 2024 DingTalk. All rights reserved. // #import "JoinViewController.h" #import "ChannelInfo.h" @interface JoinViewController () <NSWindowDelegate> @property (weak) IBOutlet NSTextField *channelId; @property (weak) IBOutlet NSTextField *userId; @property (nonatomic, strong) NSWindowController *whiteboardWindowController; @end @implementation JoinViewController - (void)viewDidLoad { [super viewDidLoad]; // Do view setup here. self.channelId.stringValue = ChannelInfo.channelId; self.userId.stringValue = ChannelInfo.userId; } - (IBAction)clickJoinButton:(id)sender { NSLog(@"click \"Join Room\" button"); if (self.channelId.stringValue.length == 0 || self.userId.stringValue.length == 0) { NSLog(@"Please input join channel id or user id!"); return; } [ChannelInfo setChannelId:self.channelId.stringValue]; [ChannelInfo setUserId:self.userId.stringValue]; // create and show room window if (self.whiteboardWindowController == nil) { NSStoryboard * mainStoryboard = [NSStoryboard storyboardWithName:@"Main" bundle:nil]; self.whiteboardWindowController = [mainStoryboard instantiateControllerWithIdentifier:@"WhiteboardWindow"]; self.whiteboardWindowController.window.delegate = self; } [self.whiteboardWindowController showWindow:nil]; [self.whiteboardWindowController.window center]; // hide join window [self.view.window orderOut:nil]; } //MARK: - NSWindowDelegate - (BOOL)windowShouldClose:(NSWindow *)sender { NSLog(@"[JoinViewController windowShouldClose], window = %@", sender); if (sender == self.whiteboardWindowController.window) { self.whiteboardWindowController = nil; // show join window [self.view.window makeKeyAndOrderFront:nil]; } return YES; } @end