69 lines
2.4 KiB
Objective-C
69 lines
2.4 KiB
Objective-C
//
|
|
// DemoLogViewController.m
|
|
// TrustHttpDNSTestDemo
|
|
//
|
|
// @author Created by Claude Code on 2025-10-05
|
|
//
|
|
|
|
#import "DemoLogViewController.h"
|
|
|
|
@interface DemoLogViewController ()
|
|
|
|
@property (nonatomic, strong) UITextView *textView;
|
|
@property (nonatomic, copy) NSString *pendingInitialText;
|
|
|
|
@end
|
|
|
|
@implementation DemoLogViewController
|
|
|
|
- (void)viewDidLoad {
|
|
[super viewDidLoad];
|
|
self.title = @"日志";
|
|
self.view.backgroundColor = [UIColor systemBackgroundColor];
|
|
|
|
self.textView = [[UITextView alloc] initWithFrame:CGRectZero];
|
|
self.textView.translatesAutoresizingMaskIntoConstraints = NO;
|
|
self.textView.editable = NO;
|
|
if (@available(iOS 13.0, *)) {
|
|
self.textView.font = [UIFont monospacedSystemFontOfSize:12 weight:UIFontWeightRegular];
|
|
} else {
|
|
self.textView.font = [UIFont systemFontOfSize:12];
|
|
}
|
|
[self.view addSubview:self.textView];
|
|
[NSLayoutConstraint activateConstraints:@[[self.textView.topAnchor constraintEqualToAnchor:self.view.safeAreaLayoutGuide.topAnchor constant:8], [self.textView.leadingAnchor constraintEqualToAnchor:self.view.leadingAnchor constant:12], [self.textView.trailingAnchor constraintEqualToAnchor:self.view.trailingAnchor constant:-12], [self.textView.bottomAnchor constraintEqualToAnchor:self.view.bottomAnchor constant:-8]]];
|
|
|
|
if (self.pendingInitialText.length > 0) {
|
|
self.textView.text = self.pendingInitialText;
|
|
self.pendingInitialText = nil;
|
|
}
|
|
|
|
UIBarButtonItem *close = [[UIBarButtonItem alloc] initWithTitle:@"关闭" style:UIBarButtonItemStylePlain target:self action:@selector(onClose)];
|
|
self.navigationItem.leftBarButtonItem = close;
|
|
}
|
|
|
|
- (void)onClose {
|
|
[self dismissViewControllerAnimated:YES completion:nil];
|
|
}
|
|
|
|
- (void)setInitialText:(NSString *)text {
|
|
if (self.isViewLoaded) {
|
|
self.textView.text = text ?: @"";
|
|
[self.textView scrollRangeToVisible:NSMakeRange(self.textView.text.length, 0)];
|
|
} else {
|
|
self.pendingInitialText = [text copy];
|
|
}
|
|
}
|
|
|
|
- (void)appendLine:(NSString *)line {
|
|
// 当日志较多时,直接追加可避免重排整块文本
|
|
if (self.isViewLoaded) {
|
|
NSString *append = line ?: @"";
|
|
if (append.length > 0) {
|
|
self.textView.text = [self.textView.text stringByAppendingString:append];
|
|
[self.textView scrollRangeToVisible:NSMakeRange(self.textView.text.length, 0)];
|
|
}
|
|
}
|
|
}
|
|
|
|
@end
|