読み込んでいます...

这篇文章要说的东西不多,而且也没那么复杂,只是作为笔记的用途,以后自己可能再回过头写的时候可能会需要这样的资料。

写一个简单的程序,这个程序大概叫Password Saver,我相信应该有很多这样的程序了,而且这样的程序也不是很复杂,不过在Windows下用到过一个比较顺手的,在Mac下还没有,所以就准备自己写一个,也算是自己用的一个小工具。这篇文章不是围绕这个程序来写的,所以,并不会和程序有多大关系。首先还是看看我们的效果。

简单说一下要做的事情,输入一个key,能够得到密码。比如我设置了我这个博客的后台的用户名,然后想要得到密码,我只需要输入用户名,然后就可以得到密码了,我可以将这个key设置为guojingkey,然后得到密码。当然,程序有很多其他部分,我就不展现了。

这里有两个要做的,一个是输入事件,一个是Read-only的设置。当然,我们还是会写一个Controller,鉴于前面我写过多次,这里就不重复了,要看的请看前面的文章。

当我们在key里面输入一个key的时候,输入完毕,按回车,密码就出现了,不需要再去点Get(保留是因为有的习惯不同,可能喜欢点Get),所以这里就需要有输入完成的事件。当然,密码需要是Read-only的,不能随意乱改,否则体验不好。

事件这个地方比较好弄,我们选择Textfield,然后在属性里选择事件触发的情况。这里有两种,一种是Sent On Enter Only和Sent On End Editing,意思为按Enter的时候触发事件和结束编辑的时候触发。

如上图中的Action这个属性,这里我选择了Sent On End Editing,结束编辑的时候触发事件。这个选择和前面的不同,前面的是按回车触发事件,这个是在按回车和丢失焦点的时候触发的,所以这个是更好的。事件绑定的时候我们只需要绑定selector即可。当输入完毕后会自动调用相应的事件,如下。

事件的问题解决了,我们还需要解决只读的问题。在Mac下开发并没有类似Windows开发的消息模式的方式,在封装上面也没有.NET来的方便,例如只读在.NET下开发只需要设置一下Readonly属性即可,在Mac下,我们还需要绑定属性。

不知道如何设置,国内没有这方面的资料,于是查了一下Apple,发现需要绑定一个NSNumber属性,这个属性可以不赋值。比如我们写一个这个View的Controller,代码可以写如下。

@interface MainController : NSObject {
    IBOutlet NSNumber
*editable;
}

@property(readonly) NSNumber *editable;

上面的代码编写完成后,我们还需要绑定一下,我们选中TextFieldCell,注意是Cell,如下图。

选中之后,我们在右侧的属性中绑定我们的属性,如下图。

绑定的类就是我们的Main Controller(这个是我们自己写的Controller,不明白看前面的文章),然后相应的属性就是我们刚才写的editable了。

这样,事件和Read-only属性就都解决了。关于其他的属性配置,也可以参考这个绑定方式,基本上换汤不换药,绑定何种数据类型,还是直接查官方的开发资料比较好。我就不一一列举了。

489路过 1评论 Mac开发 阅读全文..
  1. 置顶的更新,文章汇总 : GuoJing's Blog | 用心对待每一行代码 @

    [...] Mac开发 – 一些有关Textfield的Tip [...]

:-D :-? 8) :cry: 8-O :lol: :-x :-| :?: :-P :oops: :roll: :( :) :-o :wink: more »