Overriding NSTextTable behaviour in NSTextView
Overriding NSTextTable behaviour in NSTextView
- Subject: Overriding NSTextTable behaviour in NSTextView
- From: Keith Blount <email@hidden>
- Date: Thu, 3 Sep 2009 07:27:57 -0700 (PDT)
Hello,
I would like to make a minor adjustment to the way tables work in an NSTextView, but as the tables panel is a bit of a black box and as the table classes - NSTextTable and NSTextTableBlock - aren't the easiest thing to use (they are straightforward if you just want to create a table programmatically, but messing around with them live gets tricky), I am having difficulties finding a way of doing what I want.
What I would like to do is this: if the user is in the last column in the last row of a table and hits the tab key, another row should be created below and the cursor placed in the first cell. This would be the equivalent of the user clicking in the table panel to create an extra row and then hitting tab, so in theory, this is what I would like to achieve programmatically to override the current behaviour:
1) Override NSTextView's -insertTab: to containing the following.
2) Inside -insertTab:, detect if the typing attributes' paragraph style has a text table block associated with it.
3) If so, detect if it is the last cell in the last row (I'd probably have to account for R-to-L text here).
4) If so, somehow simulate the user clicking on the "add new row" button in the tables panel.
5) Continue with super's -insertTab: so that the cursor moves to the first cell in the new row.
Needless to say, steps 3 and 4 are the difficult parts here, as all the actions for things such as "add extra table row" seem to be private, and there doesn't seem to be an obvious way of detecting whether a given cell is in the last column or row.
Has anyone had any experience with overriding NSTextView's standard table-creation behaviour, or has anyone got any ideas about how I might achieve the above?
Many thanks and all the best,
Keith
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden