Какао - добавить NSTextfield в NSRect

Я не понимаю, почему приведенный ниже код не работает. Я бы хотел, чтобы в NSRect было поле NSText, но я не уверен, возможно ли это, и если это так, я попытался: код ниже, но он не работает...

NSRect city_label = NSMakeRect(20, 20, 7, 7);

NSTextField *label = [[NSTextField alloc] initWithFrame:city_label];

label.stringValue = @"Contents of NSTextfield";

NSRect обращается в NSView

У кого-нибудь есть идеи?

1 ответ

Решение

NSRect - это не та сущность, которую можно "нарисовать в NSView"- это не экземпляр подпредставления NSView, NSRect это просто C struct опишите размер (ширину и высоту) и происхождение (x и y).

После инициализации вашего NSTextField с его рамкой (имейте в виду, что источник здесь относится к представлению, к которому вы добавите текстовое поле как подпредставление), вы должны добавить его в представление, которое вы хотите иметь в качестве суперпредставления. Предполагая на мгновение, что мы находимся в пользовательском подклассе NSViewController, вашему коду просто нужна эта дополнительная строка

[self.view addSubview:label];
Другие вопросы по тегам