Tôi đang cố gắng tạo một NSTextField
theo chương trình.Chiều rộng NSTextField và tự động trả lời
Tôi muốn sử dụng NSTextField
này với bố cục tự động, do đó chiều rộng của nó sẽ được xác định tự động để hiển thị toàn bộ dòng (chỉ có một dòng văn bản).
Vấn đề là textField.intrinsicContentSize
và textField.fittingSize
đều có -1 và 0 giá trị cho ngang phối hợp, như đầu ra của mã dưới đây là: textField.intrinsicContentSize={-1, 21}
textField.fittingSize={0, 21}
Mã:
NSTextField* textField = [[NSTextField alloc] initWithFrame:NSMakeRect(0, 0, 10, 24)];
NSString* str = @"One line of text here.";
[textField setStringValue: str];
[textField setTranslatesAutoresizingMaskIntoConstraints:NO];
[textField invalidateIntrinsicContentSize];
NSLog(@"textField.intrinsicContentSize=%@", NSStringFromSize(textField.intrinsicContentSize));
NSLog(@"textField.fittingSize=%@", NSStringFromSize(textField.fittingSize));
Điều này làm cho trường văn bản có độ rộng bằng 0 do bố cục tự động gán.
Tôi nên làm gì để nhận các giá trị có ý nghĩa cho các thuộc tính fittingSize
và intrinsicContentSize
của trường văn bản để chúng phản ánh nội dung của trường văn bản?
Điều này được giải quyết tại đây: http://stackoverflow.com/q/20809622/210171 (Bạn phải đặt editable = false cho trường văn bản thành tự động kích thước) – nielsbot