gpt4 book ai didi

objective-c - NSAlert 框未显示

转载 作者:太空狗 更新时间:2023-10-30 03:49:06 25 4
gpt4 key购买 nike

我正在开发我的第一个 cocoa/Objective-C 应用程序,所以如果我做的事情明显不正确,请多多包涵。我将应用程序设置为将窗口上 NSTextField 中的任何内容复制到另一个 NSTextField(在本例中为标签)。如果用户没有在文本框中输入任何内容,它应该显示一个警告,但事实并非如此。我的代码有什么问题?

AppDelegate.m:

#import "AppDelegate.h"

@implementation AppDelegate

@synthesize window = _window;
@synthesize textBox1 = _textBox1;
@synthesize label1 = _label1;

- (void)dealloc
{
[super dealloc];
}

-(IBAction)setLabelTxt: (id)sender{

if(_textBox1.stringValue != @"")
[_label1 setStringValue: _textBox1.stringValue];
else{
NSAlert* msgBox = [[[NSAlert alloc] init] autorelease];
[msgBox setMessageText: @"You must have text in the text box."];
[msgBox addButtonWithTitle: @"OK"];
[msgBox runModal];
}
}

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
// Insert code here to initialize your application
}

此外,是否有 Cocoa UI 元素使用的方法指南(如命名方案)?我使用的是 .NET 风格的 GUI 编程。@结束

最佳答案

这是你的问题:

if(_textBox1.stringValue != @"")

您正在比较指针相等性,因此此表达式始终返回 true,因为字符串常量 @"" 永远不会与文本字段的字符串对象相同。

进行这种比较的正确方法是:

if (![_textBox1.stringValue isEqualToString:@""])

甚至更好:

if (_textBox1.stringValue.length > 0)

关于objective-c - NSAlert 框未显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8498885/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com