macOS开发-NSTextField
2020-10-27 本文已影响0人
ForgetSou
NSTextField 简介
输入框,主要用于用户输入文本,同 iOS
里的UITextField
在macOS开发环境下,没有像iOS
里的UILabel
一样定义、创建标签,此时可以使用NSTextField
创建标签
NSTextField 举例
- (void)viewDidLoad {
[super viewDidLoad];
NSTextField *tf = [[NSTextField alloc] initWithFrame:CGRectMake(0, 0, 500, 100)];
tf.toolTip = @"10月16日,第二届中国互联网企业社会责任高峰论坛暨《2020中国互联网企业社会责任报告》(下称“报告”)发布会在京举办。";
NSString *text = @"10月16日,第二届中国互联网企业社会责任高峰论坛暨《2020中国互联网企业社会责任报告》(下称“报告”)发布会在京举办。报告由北京师范大学互联网发展研究院、互联网司法治理研究中心联合光明网、中国经济网、中国日报网、中国网、北师大中国教育与社会发展研究院权威发布,系统评价了中国互联网企业社会责任发展现状,为进一步强化社会责任意识,改进社会责任管理,更好地促进经济效益与社会效益的统一,实现企业和行业健康、有序地发展提供依据。";
// 中划线
NSDictionary *middleAttributeDic = @{NSStrikethroughStyleAttributeName : @(NSUnderlineStyleSingle)};
/*!
NSStrikethroughStyleAttributeName // 中划线
NSUnderlineStyleAttributeName // 下划线
*/
NSMutableAttributedString *attributeStr = [[NSMutableAttributedString alloc] initWithString:text attributes:middleAttributeDic];
tf.attributedStringValue = attributeStr;
tf.placeholderString = @"NSTextField-placeholdString";
tf.backgroundColor = NSColor.clearColor;
tf.textColor = NSColor.whiteColor;
tf.bordered = false;
tf.editable = false;
tf.selectable = true;
tf.highlighted = false;
tf.delegate = self;
[[tf cell] setUsesSingleLineMode:false];
[[tf cell] setTruncatesLastVisibleLine:false];
tf.font = [NSFont systemFontOfSize:15];
tf.alignment = NSTextAlignmentCenter;
tf.maximumNumberOfLines = 2;
[self.view addSubview:tf];
}
#pragma mark - NSTextFieldDelegate
- (BOOL)textField:(NSTextField *)textField textView:(NSTextView *)textView shouldSelectCandidateAtIndex:(NSUInteger)index {
return YES;
}
- (NSArray *)textField:(NSTextField *)textField textView:(NSTextView *)textView candidatesForSelectedRange:(NSRange)selectedRange {
return @[];
}
- (NSArray<NSTextCheckingResult *> *)textField:(NSTextField *)textField textView:(NSTextView *)textView candidates:(NSArray<NSTextCheckingResult *> *)candidates forSelectedRange:(NSRange)selectedRange {
return @[];
}```