使用 Swift 更改 NSMenuItem 标题

问题描述 投票:0回答:2

我想在登录过程成功完成后以及用户注销后更改菜单项的标题。

但是如果我登录并检查菜单项的标题,它并没有改变。我什至试图隐藏它,但没有成功。

这是我的代码

var mainMenu:NSMenu
var LoginButton:NSMenuItem
mainMenu=NSApplication.sharedApplication().mainMenu!
LoginButton=mainMenu.itemWithTitle("Login")!
LoginButton.title="LogOff"
LoginButton.hidden=true

感谢您的帮助。

swift macos nsmenu nsmenuitem
2个回答
7
投票

将 Interface Builder / Bindings Inspector (

⌥⌘7
) 中菜单项的 Title 参数绑定到
dynamic
中具有
AppDelegate
属性的属性。

例如在

AppDelegate

中声明
@objc dynamic var logonTitle = "Login"

并将菜单项的

Title
参数绑定到
AppDelegate
> 模型密钥路径
logonTitle

现在,每当您更改

logonTitle
的值时,标题都会相应更改。

不需要进一步的参考资料、渠道等。

PS:请按照指南中的建议,一致地以小写字母开头命名您的变量。


0
投票

实际上有更好的方法来解决这个问题。您的项目中将会有一个

Main.strings
文件,其中包含应用程序的 MenuItems 的所有字符串,您可以直接转到那里并根据您的要求进行更新。这样我们也可以支持本地化,而无需更改代码级别。

© www.soinside.com 2019 - 2024. All rights reserved.