objective-c – NSAlert框未显示

objective-c – NSAlert框未显示,第1张

概述我正在研究我的第一个可可/ Objective-C应用程序,所以如果我做的事情明显不正确,请耐心等待.我将应用程序设置为将窗口中NSTextField中的任何内容复制到另一个NSTextField(在本例中为标签).如果用户未在文本框中输入任何内容,则应显示警报,但不是.我的代码出了什么问题? AppDelegate.m: #import "AppDelegate.h"@implementat 我正在研究我的第一个可可/ 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框未显示全部内容,希望文章能够帮你解决objective-c – NSAlert框未显示所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1013781.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-22
下一篇2022-05-22

发表评论

登录后才能评论

评论列表(0条)

    保存