oc之NSTextView的相关使用

在iOS中对textView的设置直接用就好了,但是在mac os开发中只设置textView是不可用的(因为无法滚动)。需要添加到scrollview上面。下面纯代码创建NSTextView。

@property (nonatomic, strong) NSTextView *theTextView;
@property (nonatomic, strong) NSScrollView *scrollView;
1
2
// NSTextView
self.theTextView = [[NSTextView alloc] initWithFrame:CGRectMake(20, 20, self.window.frame.size.width - 40, self.window.frame.size.height - 80)];
[self.window.contentView addSubview:self.theTextView];
self.theTextView.backgroundColor = [NSColor whiteColor];
self.theTextView.editable = NO;
self.theTextView.string = @"applicationDidFinishLaunching";

self.theTextView.textColor = [NSColor colorWithRed:102 / 255.0 green:102 / 255.0 blue:102 / 255.0 alpha:1.0];

// NSScrollView
self.scrollView = [[NSScrollView alloc]initWithFrame:CGRectMake(20, 20, self.window.frame.size.width - 40, self.window.frame.size.height - 80)];
[self.scrollView setBorderType:NSNoBorder];
[self.scrollView setHasVerticalScroller:YES];
[self.scrollView setHasHorizontalScroller:NO];
[self.scrollView setAutoresizingMask:NSViewWidthSizable | NSViewHeightSizable];


[self.theTextView setMinSize:NSMakeSize(0.0, self.window.frame.size.height - 80)];
[self.theTextView setMaxSize:NSMakeSize(FLT_MAX, FLT_MAX)];
[self.theTextView setVerticallyResizable:YES];
[self.theTextView setHorizontallyResizable:NO];
[self.theTextView setAutoresizingMask:NSViewWidthSizable];
[[self.theTextView textContainer]setContainerSize:NSMakeSize(FLT_MAX, FLT_MAX)];
[[self.theTextView textContainer]setWidthTracksTextView:YES];
[self.theTextView setFont:[NSFont fontWithName:@"PingFang-SC-Regular" size:12.0]];
[self.theTextView setEditable:NO];


[self.scrollView setDocumentView:self.theTextView];
[self.window.contentView addSubview:self.scrollView];
---------------------
作者:tongwei117
来源:CSDN
原文:https://blog.csdn.net/tongwei117/article/details/77449497
版权声明:本文为博主原创文章,转载请附上博文链接!

不允许键盘输入,只允许程序写入

- (void)awakeFromNib
{
[_textView setEditable:NO];//一启动程序就限制编辑
}

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
NSAttributedString *text = [[NSAttributedString alloc] initWithString:@"xxxxxxxxxxx" attributes:nil];
[_textView setEditable:YES];//只有在需要设置新文本前才允许编辑
[_textView.textStorage beginEditing];//开始编辑。《--这个可有可无,一般频繁编辑大段attributed String和其属性时候才用到。
[_textView.textStorage setAttributedString:text];//设置新字符串
[_textView.textStorage endEditing];//结束编辑。《--这个可有可无,一般再繁编辑大段attributed String和其属性时候才用到。
[_textView setEditable:NO];//设置完数据后立即禁用编辑
}

 

posted @ 2019-01-28 17:03  sundaysmac  阅读(1855)  评论(0编辑  收藏  举报